Про MODx и не только
Я долго откладывал написание этого поста, но время пришло. Если вы являетесь начинающим разработчиком и выбрали MODx (как и я много лет назад) в качестве основного фреймворка для своей разработки, то вы должны знать несколько достаточно неприятных фактов об этой системе. Надеюсь, что они заставят вас задуматься.
Эту заметку я буду писать с точки зрения разработчика. И сразу скажу, что основной посыл этой заметки – если вы планируете и дальше заниматься разработкой и делать это профессионально, бегите от MODx. Если слово бегите в данном контексте кажется слишком эмоциональным, то следует помнить, что речь идет о вашем профессиональном росте и карьере.
Мы не будем обсуждать, является ли PHP плохим или хорошим языком. Он стал одним из стандартов в веб разработке и начиная с 7 версии стал вполне зрелым объектно-ориентированным языком. А 8 версия вообще во многом стала прорывом и еще больше закрепила позиции языка. Но вернемся к MODx.
Когда я выбирал себе фреймворк для разработки, MODx привлек меня своей простотой и надписью фреймворк. Но давайте будем честны, это не фреймворк – это CMS сделанная с прицелом на удобстве для разработчиков. И если вы писали MODx пакеты с нуля, то заметили, что удобство это только заявленное и весьма сомнительное.
Ну допустим это не фреймворк и что с того? Зато удобно и можно быстро что-то написать. И это правда! MODx действительно удобен для маленьких проектов. Но чему он вас учит как разработчика? Вставлять кусочки HTML в чанки? Устанавливать плагины из админ панели? Перебирать настройки делая их "более безопасными"? А, да, чуть не забыл – переименовывать папку core в целях безопасности. Тут сразу вспоминается история с сайтом Василия Наумкина. Его сайт тогда на спор хакнули, хотя он и говорил, что это невозможно. Вообще к безопасности MODx у меня лично много вопросов, включая знаменитую историю с парсером, но оставим это разработчикам "фреймворка".
Итак, мы остановились на том, что задачи разработки на MODx это что-то среднее между работой верстальщика и контент менеджера. И что с того, спросит читатель? Напомню, что повествование ведется от лица разработчика. И что из вышеперечисленного связано напрямую с разработкой? Почти ничего.
Но можно же писать код для ядра MODx или плагины. И тут начинается самое интересное. Пробегаясь по гитхаб проектам, часто ли вы видите тесты? Почти никогда. А если видите, то там такое, что сразу понимаешь всю степень заявленного удобства для разработчиков. А ведь тестирование сейчас, это база.
Ну хорошо, нет возможности нормально создавать пакеты. Нет возможности нормально писать тесты. Ну и что с того, ведь можно на коленке сделать небольшой проект. Да можно, но есть нюанс.
Даже делая проект на коленке, можно делать его очень по-разному (именно поэтому так ценятся пет проекты, потому что можно поиграться и обкатать технологии, которые ты раньше не использовал). Можно, сделать Slim проект построенный с использованием какой-нибудь редкой имплементации контейнера. Можно сделать проект на Symfony, собрав все нужные composer зависимости под себя (в мире MODx о такой модульности даже не слышали). Можно сделать Laravel проект с распределением обязанностей по SOLID или вообще по DDD методологии. А что можно сделать в MODx? Использовать прекрасный xPDO, который заявлен как Active Record. Но почему-то, исторически наверное так сложилось, отвечает еще и за установку пакетов, конвертирование в JSON и массу других очень полезных вещей, которые не имеют отношения к ответственностям Active Record. А больше наверное и ничего…
Но давайте рассмотрим еще один аспект – актуальность. Ну хорошо, может фреймворк актуален и случись что, вы как опытный разработчик сможете переключиться на что-то другое? В момент написания заметки, а это январь 2025 года, актуальная версия 3.1.0. Минимальные требования PHP 7.2.5. Серьезно? Я даже не смог найти когда закончился выпуск секьюрити патчей для этой версии. Рекомендуемая версия для продакшена 7.4. Серьезно? Поддержка закончилась в 2022 году, а выпуск секьюрити патчей закончился в 2023. 8 Supported – ну слава богу что поддерживается… А тем временем в мире фреймворков PHP 8.1 это уже самый минимум. Про сборку проектов писать не буду, но там тоже ничего хорошего нет.
В завершении. Я очень благодарен MODx и их сообществу, которые создали интересный для своего времени продукт. Но это время безвозвратно ушло. Помню момент выхода PHP 8. Когда все фреймворки перепиливали свои ядра под новые фичи языка, на modx.com пилили новый дизайн сайта, который по мнению авторов должен стать более продающим. А Джейсон что-то там в очередной раз говорил про 3 версию, но ему было не до нее. Продающий сайт конечно важнее. И это можно понять с точки зрения бизнеса, но нельзя с точки зрения продукта. Именно в тот момент я понял, что MODx все.
Итог Если вы начинающий разработчик, то старайтесь не использовать MODx – он вас ничему не научит и ничего в профессиональном плане не даст. А если вы все таки начали и не желаете отказываться от его удобств, то хотя бы иногда делайте небольшие проекты на Laravel, Symfony или любых других полноценных PHP фреймворках. Поверьте, это сделает вас более сильными и лучшими разработчиками. Хорошего вам карьерного пути и удачи в разработке!
P.S. Это будет завершающая статья в этом блоге. Мой новый блог можно без проблем найти в моем github профиле.
Комментарии (2)