Новости Yii 2020, выпуск 8

Всем привет! Это последний выпуск новостей в "весёлом" 2020 году. Я едва успел его приготовить потому как скорость разработки Yii 3 сильно подросла. Все пакеты в этом месяце мы тегнуть не успели, но многие почти готовы, поэтому стоит ожидать релизов в Январе.

С наступающим Новым Годом! Пусть будет менее сумасшедшим, чем 2020. - Александр Макаров

// Не забывайте ставить звёздочки любимым пакетам на GitHub.

Фонд и команда

Год показал что мы можем тратить средства на разработку эффективно, так что помогать нам финансово — отличный вариант!

Yii 1

Был выпущен Yii 1.1.23. Он добавляет поддержку PHP 8 и улучшает совместимость с PHP 7. Также добавлена поддержка PostgreSQL 12.

Это первый релиз, который сделал новый член команды, Marco van 't Wout, под руководством Carsten Brandt.

Yii 2

Вышел Yii 2.0.40. Фокус релиза, в основном, на исправлении ошибок.

Были выпущены следующие расширения:

Также:

Yii 3

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

Релизы

Новые пакеты

Мы не только добавляем пакеты, но и удаляем... некоторые пакеты, такие как yii-api, были удалены.

Arrays

Хелпер Files и файловая система

В хелпере Files произошли следующие изменения:

Пакет File system теперь использует стабильную версию Flysystem.

Консоль

Команда yii serve теперь по умолчанию использует в качестве роутера public/index.php. Это сделано чтобы нормально поддерживались точки в URL.

БД и Active Record

Зачистка порта базы данных и AR из Yii 2 идёт полным ходом. До завершения ещё далеко, но движение в этом направлении верное. Интересные изменения:

Миграции

Cycle

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

Применён новый дизайн к страницам ошибок. За него спасибо Аркадию Зимину и Фёдору Достоевскому.

t7e2nlxmrvow7xni5rngenrxi_y.png

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

g_s2jgvgujkzyj2r62wxdkwpvfu.png

Отладчик

Фронт-часть отладчика всё ещё разработке.

Профайлер

Инструментарий разработки фреймворка

Были сделаны следующие улучшения инструмента yii-dev:

Перевод сообщений

Пакет почти готов к релизу.

Демо-приложение

Мы обновляем демо вслед за пакетами:

Шаблон веб-приложения

Также обновлена начальная страница:

tguu9wvc2j3vwghjp70vd6vtvss.jpeg

Шаблон API

Сейчас в шаблоне достаточно много примеров. Со временем они переедут в демо.

Кеш

Кеш серьёзно отрефакторен. Главные класс кеша теперь не реализует PSR, но использует PSR-16 как хендлеры. Есть возможность выставить TTL и префикс по-умолчанию, есть защита от cache stampede, поддерживается инвалидация через зависимости.

Почищены и отрефакторены большинство хендлеров. Очень вероятно что в начале года сделаем релиз.

Лог

Лог также серьёзно почищен и порефакторен. Для конечного пользователя это всё ещё PSR-совместимый логгер, но с точки зрения конфигурации и возможностей стало интересней:

Var dumper

Bootstrap

Изменения есть как для Bootstrap 4, так и для Bootstrap 5.

Bulma

Роутер

Serializer

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

HTML

Assets

Виджеты

Публичное API было прилично изменено для поддержки иммутабельности в виджетах. Я думаю что и синтаксис стал лучше:

<?= MyWidget::widget()->options(['class' => 'testMe'])->begin() ?>
    Content
<?= MyWidget::end() ?>

CSRF

CSRF серьёзно отрефакторен:

Первые сторонние пакеты

Несмотря на то, что Yii 3 ещё не релизнут, для него начали появляться первые пакеты. В этот раз обратим внимание на пакет для работы с SVG:

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

В общем сейчас документация в несколько устаревшем состоянии. Концептуально ничего не поменялось, а вот синтаксис много где не соответствует. Будет обновлять в следующем году.

Почитать

❤️Спасибо!

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

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