Миграция мозга WordPress -> Symfony (или любой современный фреймворк)?
Добрый день.
Года полтора назад я познакомился с WordPress и сразу же начал клепать на нём сайты для клиентов (фриланс, аутсорс) и таким образом быстро-быстро зарабатывать деньги. С этими знаниями у меня получалось многое, я сделал хорошее портфолио (уже действует вместо резюме), стал вести блог по этой теме и даже на некоторое время стал фанатом WP.
Но делать визитки и полусателлиты и фиксы для становилось скучно, поэтому я принялся за более сложные проекты.
Опачки. И упёрся в его ограничения. Да, конечно, архитектура WordPress довольно гибка и расширяема плагинами (как премиум, так и обычными), но всё же — как только я перестал попадать в сроки, причём не на чуть-чуть, а на серьёзно. Я задумался о природе вещей: ведь кроме обычной прокрастинации, мне мешали тупо различные ограничения этого API, я понимал, что я пытаюсь сделать из буханки хлеба троллейбус, и что этот же функционал любой более-менее адекватный разработчик на фреймворках/чистом PHP мог запилить очень быстро и безболезненно без оглядки на встроенные типы записей, таксономии и прочую ересь.
А теперь вопрос знатокам: как наиболее быстро и безболезненно совершить переход из состояния «клепатель сайтов на ВордПресс» (Joomla, MODx, ...) в состояние «грамотный разработчик, который в силе воплотить любую структуру в разумные сроки»?
Я более чем уверен, что не я один такой здесь, и множество начинали именно с создания сайтов для клиентов на CMS-ках.
Ответ в таких случаях простой, отложить свою прокрастинацию и начать делать на любом из вышеуказанных фрэймворках следующий проект, при этом разумеется не стараться всё написать самому и с нуля, а как можно больше пробовать использовать библиотеки, хэлперы и классы из фрэймворка.
Первые проекты может будут не так быстро получаться как на WP, зато с большим удовольствием, пониманием и интересом, а позднее и прийдёт скорость, так как накопиться опыт, понимание как решать типичные задачи (например дерево страниц, таксономия, кэширование) и уже будут готовые «каркасы» приложений.
У меня хороший знакомый делает на вордпресе сайты практически любой сложности реально. Всякие копрпоративные порталы и все что угодно. Я был крайне удивлен, что такое вообще возможно. И ему это нравиться. Может быть стоит поглубже посмотреть на тот же вордпрес? Из пхп-шных фреймворков я бы рекомендовал посмотреть на cakephp и yii. Симфони не советую.
А я наоборот посоветовал бы симфони. Сам работаю на нем уже 3 года. А с выходом 2 версии вообще не нарадуюсь. Порог вхождения конечно не маленький, но зато потом понимаешь что все очень удобно и грамотно реализовано.
Я бы для начала попробовал повторить какой-нибудь типовой проект из завершенных на фреймворке.
У меня сейчас немного схожа ситуация, но у меня есть время, чтобы разрабатывать свой велосипедный ОО-фреймворк. Когда пойму, что он меня перестает устраивать — перейду на какой-нибудь известный.
Почему такой путь? Потому что так будет понятнее, почему разработчики фреймворка пришли к тем или иным способам реализации. Год назад я вынужден был завершать проект, начатый не мной, на Yii. Я долго въезжал в него и так до конца и не понял, что в нём такого замечательного. Возможно потом пойму.
Symfony 2 не идеален, но это лучший PHP-фреймворк из популярных.
У нашей команды переход и осмысление заняло неделю (опыт у разработчиков был: ZendFramework, Yii).
Ещё неделю писали медленно, потом ускорились. Дальнейшее ускорение происходит и сейчас.
Рекомендую пытаться прикручивать сторонние бандлы (Friend of Symfony, например) и смотреть, как они запускаются. Это даст понять работу фреймворка более масштабно и пояснит общую идею взаимодействия бандлов между собой и фреймворком.
Я шел к фреймворкам с другой стороны (с «чистого» PHP, не с wordpress), и пришел к Laravel. Вот тут написал, почему — vladstudio.com — извините, что на английском :-)
Лучше начать с Yii, после WP он легче зайдёт. Но не нужно стремиться следующий проект делать на чистом фреймворке, никто не мешает вам новые плагины писать с использованием тех же ZF библиотек, для этого не нужно тащить весь фреймворк.
У ZF сейчас переходное время, только вышела вторая версия и все к ней присматривается.
Хотите мигрировать на симфони? Тогда забудьте это детище php4. Делать сайты визитки на симфони крайне не выгодно, но если уж вы добрались до сложных порталов… документацию идите читать к симфони, вот и все. Почитайте про компоузер и прочее, матерьялов в сети достаточно для быстрого старта. Правда старт на симфони будет не таким быстрым как на Yii, за счет большего порога вхождения, но под Yii все же с документацией местами плачевно + убогое комьюнити.
Для визиток вполне подойдёт silex (микро фреймоврк на базе симфони). Да и сам симфони для визиток тоже подойдёт, особенно когда заказчик захочет поменять «вон там» на «это вот».