Yii3. _

PHP-фреймворк для быстрой разработки современных приложений.

Эти крупные компании уже выбрали Yii 1.1 и Yii 2.0.
Yii3 выводит разработку на новый уровень!

Yes, it is!

Быстрая современная разработка

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

Высокое качество кода

Yii3 способствует написанию чистого и поддерживаемого кода, следуя лучшим практикам и паттернам проектирования. Фреймворк придерживается стандартов PSR (PHP-FIG), обеспечивая совместимость с другими библиотеками и инструментами. Встроенные средства тестирования, отладки и статического анализа помогают поддерживать высокое качество кода на протяжении всего жизненного цикла проекта.

Отличная масштабируемость

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

Встроенная безопасность

Yii3 обеспечивает надежную защиту веб-приложений благодаря встроенным механизмам безопасности, противодействующим распространенным угрозам, таким как XSS, CSRF и SQL-инъекции. Регулярные обновления и следование лучшим практикам безопасности позволяют разработчикам создавать защищенные приложения с минимальными дополнительными усилиями.

Компонентная архитектура

Yii3 построен на основе независимых компонентов, которые можно использовать вместе или по отдельности:

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

Гибкость

Yii3 адаптируется под ваши нужды, а не наоборот:

  • Поддержка различных структур приложений
  • Организация кода так, как удобно вашей команде
  • Простая интеграция с существующими проектами и сторонними библиотеками
  • Свобода выбора инструментов и подходов к разработке

Всё, что вам нужно, под рукой

Разрабатывается сообществом

Разработано сообществом для сообщества.

17 лет опыта

Надежные решения и стабильный фундамент для ваших проектов.

Шаблоны приложений

Мгновенный старт с готовыми шаблонами для веб-приложений, REST API и консольных инструментов — с поддержкой Docker, роутингом и тестами.

Явный DI-контейнер

Мощный и интуитивно понятный контейнер внедрения зависимостей с автоматическим связыванием и гибкой настройкой.

Мощный DBAL

Гибкая абстракция базы данных с построителем запросов, Active Record, миграциями и поддержкой PostgreSQL, MySQL, SQLite, MSSQL и Oracle.

Богатая экосистема пакетов

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

Worker Mode

Запускайте Yii3 с RoadRunner, Swoole или FrankenPHP для максимальной производительности без накладных расходов на инициализацию.

Современный PHP

Создан для PHP 8.2–8.5, использует readonly-классы, property promotion в конструкторе, атрибуты и строгую типизацию.

Стандарты PSR

Построен на базе PSR-7, PSR-15, PSR-3 и других интерфейсов, что позволяет легко интегрироваться с любыми компонентами PHP-экосистемы.

Открытая экосистема PHP

Используйте любые Composer-пакеты, заменяйте реализации ядра — никакого vendor lock-in, только стандартный PHP.

Проверенное качество

Каждый пакет достигает ~100% покрытия тестами PHPUnit, статическим анализом Psalm и мутационным тестированием Infection.

Разрабатывается сообществом

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

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

Со временем активные участники присоединяются к нашей команде.

Дружелюбное и полезное сообщество — одна из наших целей.

17 лет опыта

Yii3 — это опыт, накопленный, с 2008 года, когда была выпущена первая версия Yii.

  • Лучшие идеи и принципы Yii 1.1 и Yii 2.0, воплощенные в современных решениях.
  • Надёжный фундамент, который будет работать десятилетиями.
  • Возможность быстро создавать прототипы и превращать их в стабильные поддерживаемые продукты.

Шаблоны приложений

Yii3 предоставляет проверенные шаблоны приложений для различных типов проектов: традиционных веб-приложений, REST API сервисов и консольных утилит. Установите и запустите их не тратя время на настройку инфраструктуры.

Доступные шаблоны:

Установите любой шаблон мгновенно:

Terminal
composer create-project yiisoft/app my-project
cd my-project
make up # Окружение Docker запускается сразу

Возможности «из коробки»:

  • Docker-окружение с веб-сервером Caddy.
  • Раздельные точки входа для веба и консоли.
  • Организованная структура.
  • Настроенный роутинг, middleware и DI-контейнер.
  • Управление ассетами и инструменты сборки.
  • Конфигурация на основе окружения (dev/test/prod).
  • Наборы тестов PHPUnit и Codeception.

Шаблоны следуют современным лучшим практикам и методологии 12-факторного приложения. Вы можете свободно настраивать всё под свои нужды.

Явный DI-контейнер

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

Конфигурация проста и поддерживает различные стили объявления:

config/web.php
return [
// Соответствие класса интерфейсу
EngineInterface::class => EngineMarkOne::class,
 
// Подробная настройка
MyServiceInterface::class => [
'class' => MyService::class,
'__construct()' => [42],
'setDiscount()' => [10],
],
 
// Замыкания-фабрики
'api' => static fn(ApiConfig $config) => new ApiClient($config),
];
 
// Зависимости внедряются автоматически на основе типов
final readonly class MyController
{
public function __construct(
private CacheInterface $cache
) {}
}

Никаких антипаттернов Service Locator, никаких скрытых зависимостей — только чистый, тестируемый код с явными контрактами.

Мощный DBAL

Yii3 предоставляет надежный уровень работы с базами данных, включающий удобный построитель запросов, реализацию паттерна Active Record и комплексное управление схемами. Работайте напрямую с запросами для производительности или используйте Active Record для удобства.

Неизменяемый (immutable) построитель запросов предлагает выразительные и типизированные операции с БД:

Пример запроса
$posts = $connection
->select(['id', 'title', 'created_at'])
->from('{{%posts}}')
->where(['status' => 'published'])
->andWhere(['>', 'views', 1000])
->orderBy(['created_at' => SORT_DESC])
->limit(10)
->all();

Команды предоставляют чистый API для манипуляции данными, включая upsert, пакетные операции и транзакции. Active Record обеспечивает возможности ORM с отношениями, жадной загрузкой и автоматической валидацией. Миграции позволяют версионировать схему данных.

Множество СУБД поддерживаются из коробки. Опционально можно интегрировать Cycle ORM или Doctrine для сложных случаев.

Богатая экосистема пакетов

Yii3 предоставляет комплексную экосистему готовых к использованию пакетов, покрывающих практически любые потребности веб-приложения. Все пакеты следуют единым стандартам качества с полным покрытием тестами и соблюдением PSR.

  • Базы данных и хранение — поддержка множества БД с построителем запросов и ORM, миграции схем, пулы соединений и управление транзакциями.
  • Кэширование — гибкий уровень кэширования с адаптерами для популярных хранилищ, включая память, распределенные кэши и файлы.
  • Безопасность и контроль доступа — полноценные системы аутентификации и авторизации с RBAC, управлением правами и безопасной обработкой паролей.
  • Валидация — мощный фреймворк валидации с обширным набором встроенных правил, пользовательскими валидаторами и условной валидацией.
  • Гидрация — наполнение объектов данными (hydration) для преобразования массивов в типизированные объекты и наоборот, обеспечивая безопасность типов.
  • Рендеринг представлений — поддержка различных шаблонизаторов, макеты (layouts), частичные представления (partials), система виджетов и управление ассетами.
  • Обработка данных — форматирование данных, пагинация, сортировка и абстракции провайдеров данных для единообразной работы с разными источниками.
  • Утилиты — инструменты для работы с массивами, строками, файлами, JSON, генерации HTML и сетевых операций.

Каждый пакет имеет независимую версию, тщательно задокументирован и доступен в Packagist. Устанавливайте только то, что вам нужно.

Worker Mode

Традиционный PHP инициализирует фреймворк при каждом запросе, потребляя много ресурсов. Yii3 поддерживает режим работы с циклом событий (event loop), где воркеры обрабатывают множество запросов без повторной инициализации, что резко повышает производительность.

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

Совместимость с RoadRunner, Swoole и FrankenPHP из коробки.

Современный PHP

Yii3 полностью использует возможности современного PHP, поддерживая версии с 8.2 по 8.5 и активно применяя современные языковые конструкции для более чистого, безопасного и поддерживаемого кода.

Readonly-классы и property promotion в конструкторе избавляют от шаблонного кода:

UserService.php
final readonly class UserService
{
public function __construct(
private UserRepository $users,
private LoggerInterface $logger,
private CacheInterface $cache,
) {}
 
public function findByEmail(string $email): ?User
{
return $this->cache->getOrSet(
"user:$email",
fn() => $this->users->findByEmail($email)
);
}
}

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

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

Стандарты PSR

Yii3 активно использует интерфейсы PSR, что позволяет вам переиспользовать наработки PHP-сообщества и даже заменять реализации ядра при необходимости. Фреймворк обеспечивает гибкость без привязки к конкретному вендору.

Например, обработка HTTP использует PSR-7 (запросы/ответы) и PSR-15 (middleware):

PostAction.php
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
 
final readonly class PostAction
{
public function view(ServerRequestInterface $request): ResponseInterface
{
$response = $this->responseFactory->createResponse();
$response->getBody()->write('Превед!');
return $response;
}
}

Логирование следует PSR-3, кэширование реализует PSR-16, а внедрение зависимостей — PSR-11. Это означает, что вы можете легко подключить Monolog для логов, любой PSR-16 адаптер кэша или интегрировать стороннее PSR-15 middleware без лишних усилий.

Архитектура, ориентированная на стандарты, гарантирует переносимость вашего кода и его актуальность в будущем, сохраняя доступ к современным инструментам PHP.

Открытая экосистема PHP

Yii3 использует всю экосистему PHP вместо того, чтобы «изобретать велосипед». Построенный на стандартах PSR и Composer, фреймворк плавно интегрируется с любой PHP-библиотекой, не навязывая закрытых решений.

Используйте любые Composer-пакеты:

Терминал
composer require monolog/monolog
composer require league/flysystem
composer require symfony/mailer

Все пакеты работают сразу благодаря автозагрузке PSR и внедрению зависимостей. Нужен Monolog для логов? Doctrine как ORM? Компоненты Symfony? Просто установите и используйте их.

Заменяйте реализации ядра: благодаря интерфейсам PSR вы можете менять встроенные компоненты на альтернативные. Используйте Twig вместо стандартного шаблонизатора, Redis вместо файлового кэша или любую реализацию PSR-3 логгера.

Создавайте и делитесь пакетами: создавайте переиспользуемые компоненты как Composer-пакеты и публикуйте их в Packagist. Фреймворк не ограничивает вас проприетарными форматами — ваш код остается переносимым между проектами.

Никакого vendor lock-in. Никаких закрытых API. Только современные стандарты PHP, позволяющие использовать инновации всей экосистемы.

Проверенное качество

Yii3 поддерживает исключительные стандарты качества кода во всех пакетах. Каждая строка проходит строгую проверку на нескольких уровнях автоматизированного тестирования и анализа.

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

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

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

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

PHP 8 и API

Полностью документировано, удобно для IDE.
Готов к использованию с React, Vue.js или Angular.

Yii3 APIs
Yii3 APIs
~100%

Psalm

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

~100%

PHPUnit

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

~100%

Infection MSI

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

Присоединяйтесь к сообществу 

Создавайте высокопроизводительные
веб-приложения с уверенностью.

Recognized by many framework