Новости 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 кодом:


  • Wilmer Arambula.
  • Vitalii Shkolin.
  • Leonid Chernenko.
  • Rustam Mamadaminov.
  • Aleksei Gagarin.
  • Evgeniy Zyubin.
  • Mister 42.
  • Valerii Gorbachev.
  • Sergei Predvoditelev.
  • yiiliveext.
  • Anton Samoylenko.
  • Alexander Nekrasov.
  • Roman Tsurkanu.
  • Evgeniy Tkachenko.
  • DizhovskyyD.
  • Igor Maliy.
  • WinterSilence.
Источник: https://habr.com/ru/post/556350/


Интересные статьи

Интересные статьи

Привет, Хабр! Пока за окном на солнце греются котики, проносится лето, сходит на нет (или нет?) коронавирус, мы всей контент-студией четвертый месяц работаем удаленно. Все шутки о...
BusBoy, YeneGuzo, Trotro, Trufi… есть много приложений для общественного транспорта, в основе которых Trufi Association 1 | Trufi Association | Map data OpenStreetMap contributors Команд...
Приступая к животрепещущей теме резервного копирования на «Битрикс», прежде всего хотелось бы поблагодарить разработчиков, реализовавших автоматическое резервное копирование в облачное хранилище в вер...
На этой неделе в нашем блоге на Хабре вышла целая серия материалов о том, как проходит обучение и практика в магистратуре Университета ИТМО: Магистранты факультета ИТ и программирования деля...
Представляю Вашему вниманию перевод публикации о новой версии всеми любимого языка программирования Rust. Введение Команда по разработке языка программирования Rust рада анонсировать новую верс...