Новости Yii 2021, выпуск 2
Привет, сообщество!
С вами Александр Макаров, samdark и этой второй выпуск в этом году. Я попросил членов команды написать что-то для вступления, но, похоже, они предпочитают писать код :)
Есть новости по важным обновлениям Yii 3 и набор релизов Yii 2. Также упомянем некоторые интересные проекты, не связанные напрямую с кодом.
Статусная страница
Так как вопрос "Как вообще дела с Yii3?" задают слишком часто, мы сделали страницу с прогрессом по пакетам Yii3. Считается просто: пакет со стабильным релизом считается готовым, пакет без стабильного релиза — нет. Фреймворк не требует релиза абсолютно всех пакетов, так что бета выйдет раньше, чем будет 100%. Чуть позже мы добавим ссылку на эту страницу с главной страницы официального сайта.
Улучшения дизайна
Создатель awesomic пригласил нас использовать сервис бесплатно в качестве благодарности за Yii 2. Сейчас мы не хотим делать полный редизайн сайта так как это существенно отвлечёт нас от Yii3. Поэтому, сделаем следующее:
- Освежим логотип без потери узнаваемости.
- Сделаем согласованный стайл-гайд с логотипом, цветами, формами, шрифтами и так далее.
- То же для диаграмм и схем в документации.
- Сделаем хорошую стартовую страницу для шаблонов приложений и внешний вид для демо.
- Сделаем хороший внешний вид для дебаггера и Gii.
Сообщество
Сообщество Yii всегда мигрировало с платформы на платформу. Во времена Yii 1 главной площадкой был форум. Он и сейчас является лучшим местом для сложных вопросов потому как отлично индексируется поисковиками. В качестве чата мы использовали IRC. Позже сообщества сформировались в Facebook и StackOverflow. IRC для многих был неудобен, поэтому мы попробовали Gitter и Slack.
Сейчас Yii3 мы больше всего обсуждаем в Telegram и, похоже, он стал более популярен, чем Slack.
Yii 2
Готов большой набор обновлений:
- Yii 2.0.42.
- Apidoc 2.1.6.
- Auth client 2.2.10.
- Bootstrap4 2.0.10.
- Debug 2.1.17.
- Redis 2.0.15.
- Queue 2.3.2.
- Gii 2.2.2.
- ElasticSearch 2.1.1.
Yii 3
Разработка Yii3 идёт немного медленней, чем хотелось бы. Тем не менее, прогресс мне очень нравится. Мы выпускаем всё больше стабильных независимых пакетов и постоянно улучшаем основы, такие как конфигурацию и контейнер.
Релизы пакетов:
- Injector 1.0.4.
- Test support 1.2.1 и 1.3.0.
- HTML 1.0.0, 1.1.0 и 1.2.0.
- Var dumper 1.0.5 и 1.1.0.
- Profiler 1.0.0.
- Cookies 1.1.0 с новыми возможностями по безопасности.
Следующий набор пакетов уже готовится. А теперь время рассмотреть интересные изменения с предыдущего выпуска новостей. Для удобства изменения сгруппируем.
Шаблоны приложений и демо
- Консоль теперь вызывается как
./yii
, а не как./vendor/bin/yii
. Для существующих проектов скопируйте себе скрипт yii. Добавлен алиас @layout
.- В демо теперь используется Faker, совместимый с PHP 8.
- Файлы страницы контактов в демо переехали ещё ближе друг к другу.
Роутинг и диспетчер middleware
- Диспетчер middleware был отрефакторен. Классы поменяли имена.
- Появилась возможность отключить middleware в роуте или подгруппе. Полезно если нужно сделать исключение для отдельного роута. Например, не делать проверку на CSRF.
- Обновлён синтаксис. Лучше всего его видно в демо.
- Добавлена поддержка статических роутов.
Asset-ы
Пакет assets близок к релизу: решены все известные проблемы, написана документация, достигнуто отличное покрытие тестами.
DI и Factory
Мы опять поломали синтаксис. __class
теперь class
, свойства префиксируются $
. namespace-ы тоже немного поменяли. Скорее всего это последнее такое изменение в декларативном синтаксисе контейнера.
Эти изменения позволили нам добавить метаданные без какого-либо шанса на конфликт со свойствами:
- Добавили поддержку тегов. Полезно если хотите скормить одному сервису массив других сервисов.
- Добавили поддержку сброса состояния. Это необходимо для сервисов с состоянием при работе в режиме event loop.
Конфиги
Новый плагин был отличной идеей. После следующих изменений пользоваться им стало удобно:
- Список пакетов теперь строится с учётом зависимостей и вложенности.
- Опции выделены в отдельные ключ config-plugin-options.
- Добавлена возможность указать базовый путь до конфигах пакета. Получается меьше подпапок.
- Улучшены сообщения об ошибках.
- Добавлен интерактивный режим, который позволяет смотреть diff, обновлять конфиги и ещё всякое.
- В большее количество пакетов добавлены конфиги по умолчанию.
Старый плагин был обновлён для совместимости с изменениями в пакетах Yii 3.
На этом мы не останавливаемся. Будут ещё улучшения.
Data response
- Был добавлен middleware для content negotiating
- Обработаны некоторые специальные ситуации при форматировании ответа.
Translator
Набор пакетов для перевода почти готов к релизу. Кроме общей зачистки мы добавили инструмент для обновления перевода на основе кода и консольную команду для него. По удобству получилось, как минимум так же, как переводы в Yii 2.
Консоль
Начали группировать команды по namespace при выводе их списка.
Docker
Исправил образы Docker, включая образы под Nginx. Теперь они автоматически собираются через GitHub actions и достпны на Docker hub.
Новая и обновлённая документация
- Middleware — дополнительные диаграммы для лучшего понимания концепта.
- Cookies — подписывание и шифрование кук.
Почитать
- Converting Yii2 to Yii3
- How to dump and inspect PHP OPCodes
- Function Inlining in Zend Engine
- Do not mock what you do not own
️ Спасибо!
Хочу сказать спасибо всем спонсорам и разработчикам, благодаря которым стала возможна разработка Yii 3. Вместе у нас всё получится!
- CraftCMS — Отличная OpenSource CMS на Yii2.
- Onetwist Software — Услуги качественной разработки приложений.
- SkillShare — Обучение новым навыкам.
- Betteridge — Ювелирные изделия.
- dmstr — Облачные решения на основе Docker.
- HumHub — OpenSource решения для общения команды.
- JetBrains — Отличные инструменты для разработки.
- Skin.Club — Рынок скинов для CS:GO.
- EFKO Group — фудтех, производство продуктов питания, и венчурные инвестиции. С недавнего времени ещё и ЭФКО Цифровые Решения, отдельная растущая сервисная IT-компания, которая планирует заниматься не только внутренними проектами ЭФКО.
Кроме перечисленных нас поддерживают отдельные разработчики и другие компании.
Отдельное спасибо тем, кто помог Yii 3 кодом:
Комментарии 0
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.