Почему Yii?
В 2012 году мы задались вопросом: как нам сократит время на разработку? При этом иметь возможность наращивать функционал наших приложений и веб-сервисов, облегчить поддержку кода и командное взаимодействие, имея четкую и понятную архитектуру.
Изобретать новый велосипед не хотелось по нескольким причинам:
- Нет свободных ресурсов, разработка своего фрейморка – тяжелый труд;
- Вновь создаваемая архитектура может быть неочевидной для новых разработчиков;
- По той же причине понадобится длительное время, чтобы коллеги-разработчики поняли принципы построения приложений и работы со своим фрэймворком.
Как говорится, - поисковик в помощь. Мы начали искать подходящий фрэймворк. Многие блоггеры любят описывать свои муки поисков, нудя о героическом выборе, мы не долго мучались. Выбор практически сразу пал на Yii. Требований к фреймворку по сути было три:
- Наличие, хотя бы, базовой документации на русском, чтобы не тратить время на перевод для разработчиков без знания языка (слышится голос с дальних рядов, мол разработчик должен читать на английском, но поверьте в половине случаев наличие информации на русском намного ускоряет процесс обучения);
- Безопасность, WP тогда гремел во всех баг-трекерах, даже кулхацкеры научились делать XSS атаки.
- Скорость, понятие конечно условное, но «какой русский не любит быстрой езды»!
Напоминаем, речь идет о 2012-м. Для понимания приведём здесь график интереса к фреймворкам на php по данным Google:
Yii был на подъеме и он отвечал нашим основным трем требованиям, плюс:
- Фрэймворк активно развивался, уже сформировалось грамотное русскоязычное сообщество;
- Даже по объему репозитория понятна его легковесность по сравнению с такими китами как Zend и Symfony;
- Множество источников указывало на быстроту и относительную безопасность фреймворка, на этом мы остановимся ниже;
Базовые фишки фреймоворка также общеизвестны:
- MVC - Модель-представление-контроллер
- DAO и ActiveRecord для работы с базами данных
- Кэширование страниц и отдельных фрагментов
- Перехват и обработка ошибок
- Ввод и валидация форм
- Аутентификация и авторизация
- Использование AJAX и интеграция с jQuery
- Генерация базового PHP-кода для CRUD-операций
- Поддержка тем оформления для их лёгкой смены
- Возможность подключения сторонних библиотек
- Миграции базы данных
- Автоматическое тестирование
- Поддержка REST
Немного о самом Yii
Информация из вики:
"История Yii началась 1 января 2008 года, как проект по исправлению некоторых изъянов во фреймворке PRADO (PHP Rapid Application Development Object-oriented), ставшего в 2004 победителем «Zend PHP 5 coding contest»
Фреймворк PRADO был попыткой перенести ASP.NET на платформу PHP, включая ViewState, PostBacks, Page_Load и OnClick. Если посмотреть исходный код, то можно увидеть, что некоторые куски кода просто скопированы из ASP.NET (например, разделение на Rare Fields и Occasional Fields в классе Control с целью оптимизации по памяти, которое имеет смысл в .NET, но представляет сомнительную ценность в PHP).
PRADO унаследовал от ASP.NET почти все отрицательные стороны: медленно обрабатывал сложные страницы, имел крутую кривую обучения и был довольно труден в настройке.
В определенный момент автор (Qiang Xue) понял, что PHP-фреймворк должен быть построен несколько по-другому, и вот в октябре 2008 года, после более 10 месяцев закрытой разработки, вышла первая альфа-версия. 3 декабря 2008 был выпущен Yii 1.0"
На данный момент Yiiпредставлен в версии 2.0. Последний релиз - 2.0.8 от 28 апреля 2016.
Фрэймоворк продолжает активно развиваться.
Сравнения с другими фрэймворками
Количество строк кода
По этому значению можно косвенно судить о сложности фреймворка/CMS. Начнем с самых ёмких:
Фреймворки
- Symfony - 10 000 000 (10 миллионов, Карл!)
- Zend - 4 200 000
- Yii - 280 000
- CodeIgniter - 40 000
- Kohana - 12 000
- Fat Free Framework - 4 000
CMS
- Joomla - 800 000
- Drupal - 180 000
- Wordpress - 140 000
Для сравнения, количество строк в операционных системах:
- Debian - 65 000 000
- Gentoo - 5 500 000
- OpenOffice - 25 000 000
Информация отсюда: http://whydrupal.ru/sravnenie-php-freimvorkov-kohana-yii-symfony-codeigniter
Сравнения производительности:
- Так называемый hello worldтест, для первого Yii.
ресурс: http://www.yiiframework.com/performance/
Как видно в простом тесте еще Yii1 демонстрировал преимущество в производительности.
- Данные бенчмарка php-framework-benchmark
Свежие тестовые данные с официальной страницы бенчмарка. Yiiопережают только микрофреймвори, но последние нерационально использовать для создания чуть более сложных систем. - Сравнение с CMS Drupal.
Конечно речь идет о сравнении с полноценной CMS, но это лишний раз подтолкнуло нас к написанию своего каркаса Taskon наYii2.
Ресурс: http://erickennedy.org/Drupal-7-Reasons-to-Switch - Тест yii1 по сравнению с другими фреймворками с официального сайта:
Каркас Taskon
Выход Yii версии 2 в 2015 году еще более упрочил нашу увереность в выбранном вреймворке. Накопив большой багаж знаний, мы создали свой каркас Taskon на Yii2 для информационных систем и веб-приложений. Мы называем Taskon каркасом, а не CMS ввиду того, что CMS имеет более узкое применение, зачастую ограниченное сайтом или интернет-магазином. Создавая Taskon, мы пытались расширить границы функционала.
Кстати наш каркас вы можете бесплатно попробовать для создания своих сайтов и веб-приложений, к тому же он хорошо документирован. Более подробно можно почитать на специальной странице каркаса Taskon.