YII2 — проверенный временем фреймворк под любые задачи

YII2 - проверенный временем фреймворк, под любые задачи

От автора: приветствую, Вас, дорогие друзья. Какой путь обычно проходит PHP разработчик? Сначала он пишет с нуля, пробует, делает всё на примерах. Свои функции, классы, файлы, структура. Изобретает свои велосипеды. И это очень хорошо на первых этапах. Но позже приходит понимание, что много денег так не заработаешь и надо ускорять свою работу, используя CMS. Изучает, пробует, делает. После разработчик осознаёт, что в CMS всё не так гибко, как хотелось бы. И начинается поиск хорошего фреймворка для дальнейшей работы.

В данной статье я хочу рассказать вам о популярном PHP фреймворке Yii2, насколько он популярен, что есть в этом фреймворке, какие у этого фреймворка возможности и чем он может быть полезен разработчику.

Yii — это высокоэффективный основанный на компонентной структуре PHP-фреймворк для разработки масштабных веб-приложений. Он позволяет максимально применить концепцию повторного использования кода и может существенно ускорить процесс веб-разработки. Название Yii означает простой, эффективный и расширяемый.

Так же стоит отметить, что один из разработчиков фреймворка — россиянин Александр Макаров. Он и занимается популяризацией фреймворка в России и не только. Наверное, это один из самых главных факторов, который повлиял на очень широкое распространение фреймворка в России и СНГ.

Популярность фреймворка Yii2

Для того, чтобы оценить популярность фреймворка, предлагаю обратиться к нескольким источникам статистики использования.

1. Статистика популярности от Sitepoin за 2015 год.

2. Популярность по статистике запросов, которую предоставляет Google Trends.

Как видно из графиков, и в первом и втором случае фреймворк Yii занимает уверенное третье место. Что, в общем, очень хорошо, учитывая, что это общемировая статистика. Но если мы возьмем статистику запросов в Google Trends по России, то картинка существенно меняется:

Из статистики видно, что в России и СНГ фреймворк Yii2 является самым популярным фреймворком. Прямо сейчас он делит популярность с Laravel. И каждый из них все равно существенно превосходят по популярности все остальные фреймворки.

Возможности Yii2

Популярность фреймворка на пустом месте не появляется. Для того, чтобы фреймворк обладал такой популярностью он должен в первую очередь обладать очень широкими возможностями и быть достаточно гибким. Сейчас предлагаю взглянуть, что же есть в Yii2 и какие у него возможности:

Yii2 – это один из самых быстрых фреймворков.

Он достаточно прост в изучении.

Структура проекта строится по паттерну MVC.

Для работы с базой данных имеются наборы классов DAO и ActiveRecord. DAO — это набор классов для непосредственного задания запросов к базе данных. ActiveRecord — классы, реализующие подход ORM, где таблица представляется классом, а записи таблицы — экземплярами класса. Всё — DAO и ActiveRecord, работает через PDO, отсюда вытекает большой список поддерживаемых баз данных: SQLite, MySQL/MariaDB, PostgreSQL, SQL Server, Oracle, Firebird/Interbase 6 и другие.

Имеется встроенная поддержка интернационализации. Так же есть возможность построения словоформ, как например 1 рубль, 10 рублей.

Генерация базового кода PHP генератором Gii, который является модулем Yii, изначально встроенным. Можно сгенериовать модель, контроллер или сразу модель, контроллер и views для операций CRUD над сущностью, таблицей. В Gii есть шаблоны генерации кода, которые можно изменить, чтобы файлы генерировались в том виде, в каком вы хотите.

Кеширование страниц и отдельных фрагментов.

Поддержка тем оформления

Возможность простого подключения сторонних классов, библиотек. При чём это делается очень просто. Можно подключить стороннюю CRM, если встроенная не устраивает

Верно так же о обратное. Можно очень легко подключить Yii к другому проекту. Подключается файл, создаётся экземпляр приложения и его можно использовать.

Миграции базы данных.

Поддержка REST

Аутентификация и авторизация. На мой взгляд всё реализовано логично и понятно. В пару строк не объяснишь, поэтому как-то кратко попробую. Разграничение доступа строится на основе ролей — RBAC. Строится иерархия Роль — Задача — Операция. Причём древовидная структура может быть большой. Роль присваивается пользователю. Пользователь может иметь несколько ролей. И по этой иерархии можно проверить есть ли связь между операцией, задачей и пользователем. Тем самым проверить доступность данного действия для пользователя. Фишка ещё в том, что эта иерархия может сохраниться как в базе, так в файле и другим образом. Авторизация выполнена в виде фильтра к контроллеру. Фильтр в Yii это код, который выполняется перед выполнением действия контроллера и решает, может ли выполниться действие контроллера при текущих условиях. В контексте авторизации может ли текущий пользователь выполнить текущую операцию. Кстати, есть ещё одна фишка — в этой иерархии можно описать дополнительные условия — бизнес-логику на допущение/не допущение при прочих равных условиях, но при текущих входных данных, условия выполнения. Например — многопользовательский блог и редактировать посты можно, но только хозяину поста.

Перехват и обработка ошибок.

Валидация входящих данных, записываемых данных — плюс к безопасности

Автоматическое тестирование.

Есть большие возможности по расширению функционала — компоненты и поведения, модули и т.д. и т.п.

Так же есть хорошие «плюшки» для безопасности. Есть возможности для предотвращение межсайтового скриптинга, предотвращение подделки межсайтовых запросов, предотвращение атак через cookie.

Виджеты, формы, таблицы и прочее выводимые на сайте зачастую выводятся с прикреплением, инеграцией jQuery для дополнительного функционала, клиентской валидации, ajax валидации и прочей функциональности.

Может я ещё какие-то фишки забыл написать, если вы считаете что еще что-то нужно сказать о возможностях фреймворка, дайте знать в комментариях.

Использование расширений

Порядок использования расширений, как правило, включает три шага:

Скачать расширение из репозитория расширений Yii;

Распаковать расширение в поддиректорию extensions/xyz базовой директории приложения, где xyz— имя расширения;

Подключить, настроить и использовать расширение.

Все достаточно просто, не так ли?

Но это было в первой версии Yii. Во второй версии все еще проще. В Yii2 появилась возможность автоматической установки расширений и настройки через Composer.

На официальном сайте фреймворка располагается на сегодняшний день 2085 расширений, которые разбиты на 15 категорий. Поэтому очень велика вероятность того, что вам не нужно будет писать расширение для ваших проектов с нуля, а вы сможете взять готовое расширение и использовать его как есть. Это еще один плюс популярных фреймворков.

Сообщество и документация

Я думаю, вы знаете и согласитесь, что во многих фрймворках отсутствует толковая документация на русском языке, а сообщество профессионалов очень не многочисленное.

И для того, чтобы разобраться с проблемой или найти решение приходится копаться в англоязычной документации фреймворка, либо лазить по зарубежным форумам. Понятно, что такой вариант устраивает не всех, не все хорошо владеют иностранными языками.

В Yii2 подобных недостатков нет. Как я уже указывал в этой статье – один из разработчиков фреймворка россиянин Александр Макаров. Он активно занимается продвижением и популяризацией фреймворка. Благодаря этому у фреймворка есть огромное русскоязычное сообщество и отличная документация. Это существенно упрощает изучение фреймворка и поиска решения проблем связанных с его использованием. Что, конечно, является огромным плюсом!

Использование Yii2 в сторонних системах

Нельзя не сказать о том, что фреймворк Yii2 может быть использован, как библиотека для разработки и улучшения сторонних систем, таких как WordPress, Joomla и других.

То есть если вам нужно расширить функционал какой-либо CMS, например, WordPress или Joomla, то вы можете подключить к ней фреймворк и использовать все его преимущества при разработке.

Сайты на Yii2

Напоследок взгляните на сайты, созданные на базе фреймворка Yii2. С использованием Yii2 разработано много проектов вот лишь малая часть этих сайтов.

http://kuponator.ru/

http://idealprice.ru/

http://66.ru/

http://trud.com/ — Изначально был написан на самописном фреймворке, на данный момент полностью переписан на Yii.

РосЯма

Заключение

Yii2 – это динамично развивающийся фреймворк на PHP с хорошим русскоязычным сообществом и документацией. Хорошее сообщество и документация делает его достаточно удобным и доступным для изучения и использования. Благодаря популярности фреймворка, для него уже есть множество готовых написанных расширений. Так же в Yii2 удобно использовать сторонние библиотеки для расширения его функциональных возможностей. А возможность использования Yii2, как библиотеки для разработки и улучшения сторонних систем, таких как WordPress, Joomla, практически не ограничивает возможности фреймворка.

P.S. Вы используете фреймворки при разработке своих проектов? Если используете, то напишите в комментариях к статье, какие фреймворки вы используете. Если нет, то хотели бы вы освоить и использовать фреймворки?

P.P.S. Обязательно посмотрите ниже видео презентацию курса «Фреймворк Yii2 с Нуля до Профи»!

Видео презентация курса «Фреймворк Yii2 с Нуля до Профи»

Фреймворк YII2. Быстрая разработка с современным фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Научиться

Метки:

Комментарии Вконтакте:

Комментарии Facebook:

Комментарии (9)

  1. Сергей

    Сколько стоит?

  2. Андрей

    А скажите «WordPress или Joomla, то вы можете подключить к ней фреймворк и использовать все его преимущества при разработке» а будет ли это описано в курсе ?

    • Андрей Кудлай

      Нет, этого в курсе не будет. На самом деле эта возможность вряд ли Вам пригодиться когда-либо в практике, поскольку и для WordPress, и для Joomla есть огромное количество плагинов, позволяющих решить большинство задач. Ну а API того же WordPress позволит решить оставшийся минимум задач.

  3. Алексей

    Доброго времени суток Андрей!
    В презентации фреймворка, а именно в созданном магазине на yii2 я не увидел реализацию сортировки товаров.
    Скажите, такой функционал планируется в обучающем курсе или нет?

    • Андрей Кудлай

      Здравствуйте, Алексей. В пользовательской части такого функционала нет. В админской части есть сортировка по всем представленным полям товара (ID, категория, наименование, цена и т.д.). В админке сортировка реализуется фактически автоматически, эта возможность уже заложена в виджет GridView, который и будет использован. В пользовательской части сортировку при желании также несложно прикрутить. Для этого используется класс Sort.
      Если с этим возникнут какие-либо сложности, то в дальнейшем на сайте появится раздел, в котором будут публиковаться уроки по Yii2 и урок, посвященный сортировке, однозначно будет там опубликован.

  4. Алексей

    Здравствуйте Андрей!
    Подскажите, планируете ли Вы в ближайший месяц добавлять уроки по yii2 в раздел? И, в связи с большим спросом по теме сортировки товаров с использованием чекбоксов на yii2, могли бы Вы сделать такой урок? В котором можно наглядно увидеть как сортировать по определенному товару отметив чекбокс, потом из отсортированного товара отметив чекбокс отсортировать по цвету, далее из отсортированного по цвету отметив чекбокс сортировать по наличию на складе.
    Как то так. В общем нормальную сортировку товаров в интернет магазине.

    • Андрей Кудлай

      Здравствуйте, Алексей.
      Уроки по Yii в ближайшее время не планируются, поскольку есть необходимость закончить курсы по AngularJS и Каталогу товаров. Как только будет завершена запись хотя бы одного из этих курсов, так, скорее всего, возьмусь за Yii. Относительно урока по фильтрации, то такой урок, скорее всего, будет, но отнюдь не в числе первых. Начну с тем попроще и постепенно перейду к темам посложнее.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree