Пропускай все через сердце
Подскажите, какой php-фреймворк является наиболее простым в освоении. В интернете очень много противоречивых отзывов от последователей каждого из фреймворка.
Требуется для решения прежде всего учебных задач и быстрого освоения + хороший мануал или уроки.
Требуется для решения прежде всего учебных задач и быстрого освоения + хороший мануал или уроки.
Если хотите чего-то более серьёзного - Kohana, но после Джумлы она может неплохо так поломать мозги первые две-три недели.
Берите кохану или YII, они оба не особенно сложные.
С вышесказанным не соглашусь:
Joomla — это CMS, не просто фреймворк. В учебных целях не очень, т.к. написано ужасно и очень узко специализировано.
Kohana и Yii — таки фреймворки, но лучше их не трогать, если есть выбор, т.к., опять таки, написаны они так себе, лучше к такому не привыкать.
Про Симфони соглашусь - сама не пробовала, но много хороших отзывов слышала.
Работала немного с CakePHP. Тоже ничего, но не для каждой задачи подойдёт, хотя, для того, чтобы научиться пользоваться фреймворками в принципе - вполне.
Я сразу признаюсь, что не эксперт по Yii, но читал документацию по диагонали. Yii плоха тем, что там очень много компромиссов между «сделать проще» и «сделать правильно» решено целиком в пользу первого. Вот, например, первый попавшийся пример из официальной документации по генерации урлов (только что открыл):
Это косяк, т.к. статический вызов класса Url не позволяет использовать бенефиты ООП в лице полиморфизма. Если мой код сегодня использует реализацию генератора урлов Url, а завтра мне понадобится для всего проекта поменять его на какую-то специфичную реализацию (например, это будет сложный иерархеский урл, который нельзя получить заменой плейсхолдеров), то мне придется пройтись по всему проекту, по всем классам и внести адское количество правок. Я уж молчу про то, что любые статические вызовы это, по сути, необъявленная зависимость — что очень хреново сказывается на реиспользовании кода. Правильнее было использовать для генерации урлов экземпляр генератора урлов, например, так:
В этом случае достаточно один раз изменить объявление $generator и всё. Никаких правок в третьих классах.
Ну и там везде так
А к зенду у меня классовая ненависть после некоторого времени работы с клиентским сайтом на старой HostCMS. После этого "большеникада!"
А кохана сейчас популярна?не устарела?просто во основном на слуху зенд,yii и симфони.
Между первыми тремя выбираю...
Для чего вам осваивать именно framework? И как у вас с английским?
А почему пугает - мб он действительно хорош?
мне кажется, после изучения php+mysql, это закономерный шаг.
Нужно простое, чтобы можно было и самой быстро разобраться и подготовить наглядные материалы для других)
поэтому просто юзать wordpress здесь мало)
у меня с английским неплохо, но желательно использовать какие-от русскоязычные пособия, а английские больше в дополнение.
Есть там, например, жуткая практика использовать статический класс с зашитым внутрь DI-контейнером для использования какого-либо сервиса. Элегантный способ одновременно использовать DI и не получать от этого никаких плюсов вообще. В сильно упрощенном виде (у меня нет сейчас под рукой кода проекта, где это широко используется), как-то так: есть некий DI-контейнер, который знает, как запускать сервисы. Пусть будет $container. Есть сервис, например, база данных — $container['db']; А используется оно в коде через вызов \Db::do(). При вызове всё это работает через магические методы (прощай, type hinting) и дергает DI-контейнер как синглетон (sic).
.masa, для простых проектов, имхо, wordpress'а вполне достаточно. В нем можно за пару дней спокойно полностью разобраться.
Фреймворки не используются для простых проектов - они как раз таки призваны для того чтобы не делать тысячу раз одни и теже сложные вещи, когда оверхед от фреймворка становится не столь значителен по сравнению с логикой проекта.
Проще говоря - для промо-сайтов, блогов, новостных лент или страниц-презентаций лучше подойдет wordpress, а, к примеру, для магазина, с каталогом товаров, онлайн-оплатой и т.п. лучше использовать framework.
90% всей полезной информации о фреймворках на английском языке. На русском зачастую вы найдете только базовые вещи..
И вот я что понял - дело не в том что ты делаешь, дело в том КАК ты это делаешь. Можно сделать простенький интерфейс, к примеру, отправки почты, состоящий из 50-100 сточек кода, но рассказать о нем так, что ни у кого не останется сомнений в том что ты действительно разбираешься в той области, за которую взялся.
Когда я выпускалась, у нас 90% людей в дипломе делали базу данных, из них половина, прстигспди, на MS SQL и ничего - с четвёрками повыпускались и забыли. Было даже немного обидно - у меня была игрушка на сях с плюсами и ещё у одной девушки полноценный красивый сайт на какой-то из только начинающих набирать обороты CMS (тогда в новинку всё это было) и мы тоже ушли с теми же четвёрками
Можно взять велосипед и рассказать как на нем ездить, а можно взять и сделать свой - пускай и корявый, но свой. Для защиты подойдут оба варианта. Но это скажется на дальнейшей работе - можно продолжать ездить на готовом велосипеде, но первая же нестандартная задача, аля "приделать багажник", все разрушит. Зато на своем велосипеде вы его с легкостью сможете прикрутить. Понимаете о чем я?
А фреймворки хочу включить в один из свой курсов, именно немного, обзорно, чтобы познакомить с возможностями, моделью, но предварительно нужно изучить самой)
Сначала нужно изучить ООП (особенно включая DI) в каком-то совсем минимальном количестве, затем DBAL/DAO/ORM/MVC/AR/DA – чтобы понимать что под капотом у большинства популярных FW и зачем их вообще писать/использовать.
Тут выше предлагали зачем-то всякие CMS. ИМХО, для задач обучения (в том числе написанию кода) стоит накрепко забыть о том, что они вообще существуют. Диплом, наклёпанный за полчаса на каком-нибудь WP/Drupal/Joomla/usw поржут, примут и даже зачтут (судя по опыту моего бывшего универа), но знаний не даст.
Начинать стоит с FW поменьше. Они менее функциональны и, обычно, идут на компромиссы с труЪ-ООП, но не проламывают крышу студиозу миллионом строк кода чтобы посчитать дважды два (привет, ZF, Java-way и астронавты абстракций). Я бы посоветовал начинать с Yii1 (Yii2 не смотрел, не знаю), Kohana, Phalcon, CI.
Ещё, после понимания о том нафиг нужны FW и какие проблемы решают, дал бы задание написать свой велосипедный MVC-OOP-FW-блог с жёстким ограничением в четыре-пять часов работы максимум.