![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
![]()
Laravel2012-06-05 13:45:37 (читать в оригинале)Как разработчику Yii, мне полезно знать, что происходит вокруг. Пару недель назад посмотрел фреймворк Laravel. О нём уже пытались написать на хабре. Было это в мае, но из песочницы пост не выбрался. Со второй попытки вроде получилось. Сообщество активно комментирует. По просьбам читателей, опишу, что я увидел в нём интересного и какие выводы были сделаны. Сам фреймворк молодой, ему примерно год. Развивается очень бурно. Уже были выпущены три версии. Последняя получила волну хороших отзывов от приверженцев CodeIgniter. Настораживают слухи о его рекламе по телевидению, что для фреймворка, а тем более, для очень молодого фреймворка странно и необычно. Итак, интересные для меня штуки: Приложение по умолчанию вынесено за вебрутРешение хорошее. Так безопасней. В Yii 1.1 приложение внутри вебрута потому как на старте Yii разворачивали его на всяких Dreamhost, на которых по-другому не запускалось. К Yii 2 планируется предоставлять несколько вариантов скелета приложения под разные размеры и окружения. Решение для конфигурации под несколько окруженийПри разработке относительно крупных проектов это приходится делать каждый раз (ну или использовать свою заготовку). Получить такую штуку из коробки приятно, хотя сделать самому тоже не сложно, тем более, многие предпочитают собирать проекты Phing-ом или Ant-ом. IoC контейнерКонтейнер — популярная нынче штука. Самое забавное, что понимают, что это такое, для чего нужно и как использовать очень немногие. Чаще всего у разработчика просто взрывает мозг и, либо он отказывается от этой штуки, либо слепо (и часто неправильно) его использует. По-моему, лучшим решением является тихое использование контейнера в ядре без заострения на нём особого внимания. Кому нужно — найдут. ДокументацияДокументация написана хорошо. Язык простой, есть примеры, описаны частые затыки и пути их разрешения. На сайте, к тому же, приятное оформление, поэтому читается хорошо. Также вся документация поставляется в виде исходника вместе с фреймворком, но, к сожалению, оформлена настолько вырвиглазно, что приходится лезть на сайт. Часто хвалят сами себя :) Статические классыВ Laravel их много. Очень много. Идея очень похожа на хелперы из CodeIgniter и на Самое интересное в этой части, возможность расширять функционал этих классов: HTML::macro('my_element', function() { return '<article type="awesome">'; }); echo HTML::my_element(); Плохо, что в некоторых местах идёт в этом направлении явный перегиб. Это касается классов, которые, скорее всего, будут расширяться разработчиком. BundlesСистема пакетов — штука замечательная. Позволяет упорядочить множество расширений, которые пишут пользователи. Для Laravel, на данный момент, большинство расширений — обёртки популярных классов. То, что используются bundles — хорошо. То, что для них сделан велосипед — не очень, ведь в скором времени Composer вытеснит остальных из это ниши (я на это очень надеюсь). КонсольРеализация не лучше и не хуже остальных. Понравилось, что используется выделение цветом, как в Symfony 2. СобытияИспользуются по полной. Глобальны, не привязаны к объектам. С одной стороны это позволяет писать довольно гибкий код, с другой — можно с этой гибкостью и не совладать, если пользоваться неправильно. В Yii2 будет нечто среднее между декларативным способом Yii 1 и абсолютно свободным из Laravel. ORMНижний слой работы с БД довольно обычный, похож на Yii. Также используется PDO, примерно такой же построитель запросов. Вот ORM у Laravel интересный. Из хорошего можно назвать:
Из нехорошего:
РоутингВместо контроллеров возможно использовать анонимные функции. Модно, но бесполезно. Из-за этой штуки привычные настройки контроллера смещены в роуты: фильтры, авторизация и др. Очень странное решение с вложенными контроллерами. Особого смысла так делать нет. Плюс имена контроллеров в этом случае строго определённые и похожи на Zend Framework 1, при том, что всё остальное именуется в другом стиле. ПаролиРазработчик отказался поддерживать небезопасные md5 и sha1 в пользу bcrypt. Полностью поддерживаю. ViewСлой выполнен в виде кучи статических классов и хелперов. Хелперы таким образом делать, в общем, оправдано, а вот сам View — сомнительно. Скорее всего, именно эту часть будут расширять под свои нужны, прикручивая Twig или Smarty. AssetsПохоже на Yii, но не настолько гибко. Для тех, кто пользовался Yii, ничего интересного. ИтогиВ итоге неплохо, но и не замечательно. Переход на Laravel с Yii 1.1 для боевых проектов сомнителен. Для тех, кому нравится CodeIgniter и не нравится Yii — хороший вариант.
|
![]() ![]() ![]()
Категория «Мультипликация»
Взлеты Топ 5
Падения Топ 5
![]()
Популярные за сутки
|
Загрузка...

взяты из открытых общедоступных источников и являются собственностью их авторов.