Насколько больно переходить с MVC подхода на Drupal?
Приветствую)
Не так давно начал пытаться вникать в Drupal и сейчас начал задумываться, а стоит ли.
Я настолько привык к MVC подходу, шаблонизаторам, что сейчас, когда что-то делаю в друпале (в 7й версии), то ощущаю боль всей душой. В книгах пишут, мол "если вы что-то хотите сделать в друпале, то поищите для этого модуль, наверняка он есть". Окей гугл, найди мне модуль для ступенчатого меню (чтобы я его мог собрать из других меню), в который по логике я должен был бы передать нужного уровня вложенности массив ссылок, тайтлов и всё ок, дальше я бы настроил его фронтенд часть и всего то делов. Сейчас же я перелопатил пачку модулей, все они делают около того, что мне надо, ладно, переживу что они упороты в своем функционале. Но вот то, что работать с эффектами и в принципе способом вывода предполагается только из админки, это глупо. Думаю, ок, сейчас гляну как это всё собирается в кучу и поправлю в этом месте. И всегда во всех модулях я вижу, что HTML код формируется с помощью PHP функций, а найти по классу элемента или какому-то атрибуту его, где он обрабатывается в коде - нереально, все собирается динамически на основании одному автору известных факторов.
Тема не столько для изливания накипевшего или холиваров, сколько хочу, описав ситуацию, понять правильно ли я её вижу (или я просто не успел еще нормально с ним поработать).
То есть, если я хочу иметь нечто, работающее по моим хотелкам, я должен всё равно это писать самостоятельно? А с учетом, что я писал доселе только на MVC движках (oc, presta), то освоение друпала будет бессмысленно сложным?
--
(под бессмысленностью имею ввиду, что используя логично правильный подход разделения логики и представления, я бы мог поискать более соответствующие CMS|CMF, хотя из таких кроме Bolt CMS или October не знаю).
когда с дрюпалом ковырялся (года три назад, но довольно упорно и долго) использовал модуль https://www.drupal.org/project/devel_themer или подобный, точно не помню. он показывает какие функции использовались при рендере конкртеного блока. правильный путь, переопределять их в своем модуле или теме, а не патчить дрюпал.
там много ступеней где можно переопределить и много хуков в апи, не все так плохо, хотя привыкать к нему надо, хотябы представлять call stack в общих чертах, где какие хуки вызываются. я для такого иногда даже смотрю код.
+ в этом xdebug может здорово помочь, при начале работы с ним несколько раз пройтись по тому какие функции выполняются, потом он становится понятнее и роднее.
хотя и давно им не пользуюсь, о нем остались в основном теплые воспоминания, хотя свои модули тоже приходилось делать )
С 7-кой все приблизительно так как вы описали. По классу что-то найти трудно. Но в Друпале почти на все есть свой хук :) С опытом к этому привыкаешь.
Я бы вам рекомендовал начать учить 8-ку. Там уже MVC, будет вам легче разобраться. Да и он помощнее 7ки будет :)
Но на 8-ку еще не все модули импортированный, но это очень скоро решится.