Новости Yii 2021, выпуск 3

Привет, сообщество!

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

Фонд

Мы поучаствовали в эксперименте FundOSS по усилению финансирования OpenSource. Всего нас поддержали 49 человек на $813. FundOSS добавили до $3295 (минус комиссия Stripe). Это довольно хорошая сумма, которая позволит нам какое-то время выделять больше времени на развитие фреймворка. Спасибо, FundOSS, OpenCollective и, конечно, тем, кто нас поддерживает. Хочется, чтобы подобные эксперименты проводились почаще.

Сообщество

Дизайн и сайт

В прошлый раз я упомянул что компания awesomic пригласила нас использовать сервис бесплатно в качестве благодарности за Yii 2. С тех пор мы кое-чего успели. На странице "official logos and design" главного сайта можно найти логотипы, favicon-ы, общие гайдлайны и стандарт для диаграмм.

Также прямо на главную страницу добавлена ссылка "Looking for Yii 3 progress?". Надеюсь, это ещё немного разогреет интерес к Yii3 и выльется в прирост issue и pull request.

Yii 1

Был выпущен Yii 1.1.24. Поддержка первой ветки фреймворка продлена до 31.12.2023.

Yii 2

Готов большой набор обновлений:

В пакете для генерации документации по API выявлены серьёзные проблемы с PHP 8. Мы работаем над этим. А пока используйте для генерации документации PHP 7.

Yii 3

Релизы пакетов:

Я решил пока не заносить в список патч-релизы и не создавать на сайте новости про них. Это отнимает время, а контент там получается не сильно интересный.

Немного пакетов убили:

Сейчас главный фокус команды — yiisoft/factory и yiisoft/di. Они блокируют 11 и 31 релиз других пакетов соответственно.

Инфраструктура

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

Yii Config теперь требует Composer 2. Первая версия Composer не видит свежие пакеты на packagist и не позволяет поставить Yii 3.

Yii development tool

В процессе разработки встречаются разные неудобства при использовании инструментария разработки, которые мы исправляем:

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

Мы переименовали "yii-demo" в просто "demo". На данный момент набор приложений и демо получается следующий:

Минимальная версия PHP для всех шаблонов и демо поднята до PHP 8.0. Пакеты в этом плане остались без изменений и требуют 7.4+ так как могут использоваться отдельно.

Добавлена возможность прописывать бутстрап в config/bootstrap.php, config/bootstrap-web.php и config/bootstrap-console.php. Туда можно добавлять такие callable, как function (ContainerInterface $container): void. Они запустятся на старте приложения.

Добавлена команда composer run serve. Делает то же, что и ./yii serve.

В общем несколько упростилась структура директорий. Мы работаем над тем, чтобы сделать её ещё проще.

DI и Factory

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

Контейнер:

Фабрика:

Очереди

HTML

Готовим 2.0.0. Будут новые теги, оптимизация генерируемого HTML и улучшение API.

Middleware dispatcher

Пакет практически готов к релизу. Мы ещё проверяем альтернативные идеи по его дизайну, но и текущий почти идеален.

Валидатор

Синтаксис валидаторов изменён:

// до
(new Number())->integer()->min(44);

// после
Number::rule()->integer()->min(44);

Yii Sentry

Создан пакет интеграции с Sentry. Sentry - сервис агрегации логов. Позволяет эффективно мониторить логи с продакшна. Поддерживаются и веб, и консоль.

Виджеты

Обработка ошибок

Конфиги

Дебаггер

После того, как мы убили версию под Angular получился следующий набор пакетов:

Viewer добавлен в шаблоны приложений и демо и доступен как http://127.0.0.1:8080/debug/viewer, где 127.0.0.1:8080 - ваши локальные хост и порт.

Роутер

Были проведены как внутренний рефакторинг, так и изменения во внешнем API.

Новая и обновлённая документация

Также полностью обновлено руководство и README большинства пакетов.

Почитать и посмотреть

❤️ Спасибо!

Хочу сказать спасибо всем спонсорам и разработчикам, благодаря которым стала возможна разработка Yii 3. Вместе у нас всё получится!

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

Отдельное спасибо тем, кто помог Yii 3 кодом: