Главная » Статьи » YII2 — проверенный временем фреймворк под любые задачи

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

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

От автора: какой путь обычно проходит PHP разработчик? Сначала он пишет с нуля, пробует, делает всё на элементарных примерах. Создает свои функции, классы, файлы, структуру, изобретает свои велосипеды. Это очень хорошо на первых этапах.

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

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

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

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

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

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

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

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

Как видно из графика, фреймворк Yii занимает третье место в общемировом рейтинге популярности, что уже неплохо. При сравнении статистики запросов в GoogleTrends по России, показатели еще выше.

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

Из данного графика популярности видно, что в России и СНГ фреймворк Yii2 уверенно занимает вторую позицию.

Возможности 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-валидации и пр.

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

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

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

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

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

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

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

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

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

На сегодняшний день на официальном сайте фреймворка располагается около 2500 расширений, которые разбиты на 16 категорий. Вероятность найти готовое решение под конкретный проект довольно велика. Это еще один плюс данного фреймворка.

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

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

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

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

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

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

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

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

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

Заработок со знанием Yii2

Поскольку фреймворк Yii2 — один из самых популярных в России, то и разработчики со знанием этой программной платформы весьма востребованы. Изучив Yii2, можно найти работу как в небольшой веб-студии, так и крупной IT-компании.

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

Как видно из скриншота выше, средняя заработная плата разработчика со знанием Yii2 составляет около 100 000 рублей. При этом даже Junior-разработчикам, с минимальным опытом или даже вообще без опыта, работодатели готовы платить от 40 000 рублей. Еще стоит отметить тот факт, что во многих вакансиях стоит отметка о том, что можно работать удаленно.

Заключение

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

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

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