Для PHP существует ряд достаточно известных и устоявшихся фрейморков. Это легендарный Zend Framework, не менее известный Symfony, простой и с хорошей документацией CodeIgniter, старичек Cakephp, легко расширяемый Kohana. И достаточно новый быстро набирающий популярность Yii Framework.
Свое знакомство с фреймворками я начал с CodeIgniter. Я был поражен той легкостью с помощью которой можно было создавать веб-приложения, но через некоторое время я понял что в нем мне не хватает модульной системы и поддержки layout. Да конечно есть расширение с помощью которого можно заставить его понимать модули и работать с layout, но скажем честно – они весьма слабоваты. Так я пришел к тяжелому, с великолепной расширяемостью Zend Framework. ZF отвечал всем моим требованиям, поддерживал модульную структуру, layout, возможность конфигурировать структуру приложения так как мне нравится. ZF идеален при разработке серьезных корпоративных решений, но для сайта визитки он будет тяжеловат. Большой вес классов, потребление памяти, долгий рендеринг страниц.
Собственно перейдем к Yii.
Yii достаточно быстро работает, потребляет мало памяти, поддерживает модульную архитектуру, layout, темы. И что самое главное содержит множество классов упрощающих работу с данными, реализацию поддержки jQuery. Используя только php код в отображении можно сделать табличный вывод содержимого таблицы базы данных, поддерживающую поиск, сортировки и дополнительные действия.
![]()
Несомненным плюсом является наличие консольной (а в разрабатываемой версии и графической) утилиты для генерации моделей, модулей, CRUD, phpunit тестов. Про CRUD можно сказать отдельно – несколькими командами в консоли можно полностью реализовать управление таблицей из базы данных: просмотр, добавление, редактирование, удаление.
Конечно, Yii не является идеальным. Есть вещи которые хотелось бы немного поменять для себя, переделать и добавить. Но они не является действительно критичными при разработке веб-приложений, и с ними можно мирится.
К главным недостаткам можно отнести “скрытые фичи” фреймворка. Документация не очень подробная, на мой взгляд она описывает только основные моменты. Для большинства случаев приходится лезть в исходных код или смотреть api. В защиту можно сказать, что весь код очень подробно задокументирован, но не всегда понятно как использовать ту или иную фишку класса.
Yii содержит немного не привычную систему работы с базой данных – Active Record. Конечно можно это понять и в полной мере использовать, но на начальном этапе (а я как раз на нем) бывает достаточно сложно разобраться.
Да и самое главное для Yii написано множество полезных расширений, которые после небольших модификаций можно использовать в своих проектах.
На этом я завершаю свой краткий обзор Yii. В ближайшем будущем я постараюсь выложить в блог результаты моего знакомство с Yii.
И на закуску немного ссылок на полезные сайты связанные с тематикой Yii:
- http://www.yiiframework.com – официальный сайт. Есть форум в том числе русский
- http://yiiframework.ru/ – русское сообщество разработчиков. Форум, русская документация
- http://rmcreative.ru/ – блог одного из разработчиков yii. Обратите внимание что разработчик пишет на русском
- http://dbhelp.ru/ – “Маленький” Yii блог. Мануал создания блога, перевод Cookbook, мелкие заметки
- http://www.simplecoding.org – Содержит цикл статей посвященных созданию сайта на Yii
