К содержанию

Wiki · Технологии разработки

Yii2

Yii2 (Yii 2.0) – это PHP-фреймворк с открытым кодом для веб-приложений: порталов, личных кабинетов, админок, интернет-магазинов и API. Его развивает команда Yii (организация yiisoft на GitHub), код распространяется по лицензии BSD-3-Clause.

Чаще всего о Yii2 сейчас спрашивают не те, кто выбирает технологию, а те, у кого проект на ней уже есть. Сайт написали лет пять или восемь назад, исполнитель ушёл, а новый подрядчик говорит: «Это Yii2, его надо обновлять или переписывать». Разберём, что из этого правда и что делать.

Под какие проекты брали Yii2

Yii 2.0 вышел в октябре 2014 года. В документации он описан как компонентный фреймворк для быстрой разработки, который хорошо подходит большим проектам: порталам, форумам, системам управления контентом, магазинам и REST-сервисам.

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

  • Gii: генератор кода, который по таблице в базе создаёт модель, страницы списка и формы редактирования;
  • GridView: таблица данных с сортировкой, фильтрами и постраничным выводом, на ней собрана большая часть админок;
  • ActiveRecord: работа с базой через модели вроде «Заказ» или «Клиент»;
  • шаблон advanced: публичная часть и админка в одном проекте, с общими моделями.

Так выглядит выборка заказов через ActiveRecord:

$orders = Order::find()
    ->where(['status' => 'new'])
    ->orderBy('created_at DESC')
    ->all();
Схема типового проекта на Yii2 по шаблону advanced: публичная часть, админка на GridView и общие модели ActiveRecord
Из чего обычно состоит проект на Yii2

Сколько ещё будет поддержка Yii 2

Это главный вопрос для владельца. По таблице жизненного цикла на сайте yiiframework.com (на октябрь 2026 года):

ВеткаPHPТолько исправления безопасностиКонец поддержки
Yii 2.0.49 и старше5.4–8.3с 31 октября 2023 года23 ноября 2026 года
Yii 2.0.50 и новее7.3–8.4с 23 ноября 2026 года23 ноября 2027 года
Yii3от 8.2с 31 декабря 2032 года31 декабря 2035 года

Новых возможностей в Yii 2 не добавляют с 2024 года. С конца ноября 2026-го ветка 2.0.50+ получает только исправления безопасности, а после ноября 2027 года не получит и их. Если проект стоит на версии ниже 2.0.50, он уходит без поддержки уже этой осенью.

Yii3 вышел 31 декабря 2025 года. Это не очередная версия Yii 2, а новый фреймворк из отдельных пакетов с другой архитектурой. Обновиться на него командой не получится: код придётся переносить по частям, по объёму это близко к переписыванию.

Yii2, Laravel и Symfony: что под какую задачу

Если проект всё равно переделывать, на столе обычно три варианта.

ВариантКогда подходитЧто учесть
Остаться на Yii 2.0.50+ и обновить PHP до 8.4Проект стабилен, крупных доработок не планируетсяЭто отсрочка до ноября 2027 года, а не решение
Перейти на Yii3Команда знает Yii и хочет сохранить привычные подходыФреймворк молодой, разработчиков с опытом Yii3 мало
LaravelКабинеты, сервисы, API с типовой логикойБольшое сообщество, обновления раз в год
SymfonyДолгие сложные системы с большой командойСтроже по архитектуре, дольше старт

Для обычного сайта компании или магазина с обменом с 1С часто разумнее не фреймворк, а 1С-Битрикс или другая CMS: админка, каталог и корзина там уже есть.

Что делать владельцу проекта на Yii2

Пять шагов для владельца проекта на Yii2: узнать версию, обновиться до 2.0.50, проверить PHP, провести аудит и выбрать путь
Что делать с проектом на Yii2
  • Узнайте точную версию: она в файле composer.lock, пакет yiisoft/yii2. Ниже 2.0.50 значит обновляться в первую очередь.
  • Проверьте версию PHP на сервере. Старый Yii часто держит сайт на PHP, который сам давно без обновлений безопасности.
  • Закажите аудит кода: сколько своих модулей, какие расширения заброшены, есть ли тесты.
  • Решите до ноября 2027 года, что дальше: переписать на другом фреймворке, перейти на Yii3 или перенести сайт на CMS.

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

Как понять, что сайт сделан на Yii2

Самый надёжный способ: в репозитории в composer.json есть пакет yiisoft/yii2, а в проекте папки controllers, models, views и web. Снаружи подсказывают мелочи: в формах и в meta-тегах страницы встречается поле, имя которого начинается с _csrf, а в адресах старых проектов бывает параметр r=, например index.php?r=site/contact. Но эти признаки можно поменять в настройках, так что точный ответ даст только код.

Версии, PHP и поддержка старых проектов на Yii2

Чем Yii3 отличается от Yii2 и как на него перейти?

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

На каких версиях PHP работает Yii2?

Yii 2.0.50 и новее по официальной таблице совместимы с PHP от 7.3 до 8.4, старые версии фреймворка только до PHP 8.3. Более свежий PHP в таблице не указан.

Что такое GridView в Yii2?

GridView в Yii2 называют готовый виджет таблицы данных. Он выводит записи из базы с сортировкой, фильтрами по столбцам и разбивкой на страницы. На нём построены почти все админки на этом фреймворке, поэтому при переносе на другой фреймворк такие таблицы приходится собирать заново.

Как найти разработчика для поддержки проекта на Yii2?

Ищите PHP-разработчика, у которого в портфолио есть проекты именно на Yii 2: опыт с Laravel не заменит знания этого фреймворка, подходы у них разные. Попросите его сначала посмотреть код и оценить, сколько займёт обновление до последней версии 2.0 и что делать после ноября 2027 года.

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

Источники

  • Yii Framework: таблица жизненного цикла версий (Release Cycle)
  • Yii Framework: руководство по Yii 2.0, раздел «Что такое Yii»
  • Yii Framework: новость «Yii3 is released»
  • Репозиторий yiisoft/yii2 и лицензия BSD-3-Clause

См. также: Laravel, Техническая поддержка сайта, Веб-приложение.

Остались вопросы по теме «Yii2»?

Напишите нам в Telegram или MAX. Ответит специалист, который отвечает за эту тему, или руководитель проектов в рабочее время.

Сергей ЧерняковОтвечает по темеСергей ЧерняковWeb-разработчик

Посчитайте стоимость проекта за 2 минуты

Калькулятор соберёт смету по нашим тарифам: сайт, дизайн, интеграции и поддержка.