- PVSM.RU - https://www.pvsm.ru -

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

Всем привет!

Почти три месяца прошло с последнего выпуска новостей. От нас почти ничего не было слышно. Мы работали. После расширения команды Yii 3 я больше занимаюсь управлением, ревю, проектированием и обсуждениями, чем непосредственно кодом. Получается неплохо. В общем темп ускорился, и мы всё ближе к нашим целям.

Активность на официальном форуме [1] и форуме yiiframework.ru [2] стала совсем низкой если сравнивать со временами Yii 1 и Yii 2. Сообщество перешло в разные социальные сети и чаты.

Я думаю, что такая миграция — это плохо. В соцсетях и чатах практически невозможно найти предыдущие ответы. Одни и те же вопросы повторяются практически каждый день и ответы не оседают в поиске. Почти уверен, что тот, кто первым начнёт собирать вопросы и ответы и публиковать их как статьи в wiki или посты в блоге, станет довольно популярным.

А теперь перейдём к тому, что же интересного случилось с последнего выпуска.

Yii 1

Со мной связались Onetwist Software [3] и предложили добавить поддержку PHP 8 в Yii 1.1 в обмен на пополнение фонда Yii [4] (из которого мы частично финансируем Yii 3). В итоге в master версии 1.1 теперь есть поддержка PHP 8. Релиза пока не было. Ждём баг-репортов. Также:

  • Пайплайны перетащили с TravisCI на GitHub actions.
  • Тесты запускаются на версиях от PHP 5.3 до PHP 8.0. Пришлось пропатчить старый PHPUnit, но в итоге всё заработало. Части патча пригодятся и для Yii 2.

Из других новостей Yii 1.1, Marco van 't Wout [5], давний пользователь Yii, вызвался разбирать тикеты и, вероятно, неофициально поддерживать Yii 1.1 после планируемого окончания поддержки [6]. Посмотрим как пойдёт...

Yii 2

Мы постепенно переводим шаблоны приложения [12] и расширения [13] Yii 2 на GitHub actions. Это позволит нам нормально работать над будущими релизами.

Yii 3

2020 год не прост и много чего идёт не по плану. Вероятно, сдвинутся предполагаемые даты релиза, о которых я уже несколько раз неосторожно заявил. Тем не менее, публичный API меняется всё меньше, и значительная часть кода направлена на исправление ошибок и мелкие доработки, а не на перепроектирование API. Конечно, некоторые части, включая конфигурацию,
всё ещё сильно меняются. Конфигурацией я пока не вполне доволен.

Команда выпустила стабильные версии некоторых пакетов. Все они фреймворко-независимые и могут быть использованы в любом PHP-приложении:

Готовятся и другие релизы.

Ниже разберём интересные изменения и дополнения.

Тесты и причёсывание

  • PHP 8 был добавлен как поддерживаемая версия в composer.json всех пакетов. Большинство уже совместимы, но пока не все.
  • После довольно длительного использования phan [20] мы переходим на Psalm [21]. Он более популярный и поддерживается PhpStorm [22].
  • Для многих пакетов реализованы дополнительные тесты, во многих пакетах тесты значительно улучшены на основе результатов мутационного тестирования через Infection. Вместе с общей зачисткой исправлено значительное количество ошибок.
  • Был создан пакет для поддержки тестов [23]. Сейчас он используется командой Yii 3 для самого фреймворка, но, вероятно, его можно будет использовать и в своих приложениях.

Пакеты

Демо приложение и шаблон приложения

Основные задачи, над которыми мы работаем, показаны на доске в Trello [54]. Там есть и те, которых нет на GitHub. Например, редизайн страницы ошибки [55].

Если хотите присоединиться к разработке, пишите мне [56] в почту, на форум, в Telegram или по любому другому каналу.

Команда

Команда ещё выросла. Текущий состав есть на сайте [57]:

Также на страницу был добавлен Дмитрий Дерепко [60]. На самом деле над Yii 3 он работает уже не мало, а вот на страницу мы как-то забыли его добавить :)

Новые и переработанные внутренние соглашения:

Обновлённые страницы в руководстве по фреймворку:

Другие новости

  • На YiiPowered [69] уже 597 проектов. Если вы не добавили свои — добавляйте. Можете даже не загружать скриншоты. Они подтянутся с реального сайта ночью.

Рекомендации к чтению

️ Спасибо!

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

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

Также спасибо Ihor Sychevskyi [92] за улучшения сайта yiiframework.com [93].

Автор: Александр Макаров

Источник [94]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/php-2/357093

Ссылки в тексте:

[1] официальном форуме: https://forum.yiiframework.com/

[2] форуме yiiframework.ru: https://yiiframework.ru/forum/

[3] Onetwist Software: https://www.onetwist.com/

[4] фонда Yii: https://opencollective.com/yiisoft

[5] Marco van 't Wout: https://github.com/marcovtwout

[6] планируемого окончания поддержки: https://www.yiiframework.com/release-cycle

[7] Yii 2.0.37: https://www.yiiframework.com/news/296/yii-2-0-37

[8] Yii 2.0.38: https://www.yiiframework.com/news/303/yii-2-0-38

[9] ElasticSearch 2.1.0: https://www.yiiframework.com/news/295/elasticsearch-extension-2-1-0-released

[10] ApiDoc 2.1.5: https://www.yiiframework.com/news/294/apidoc-extension-version-2-1-5-released

[11] Документация к Yii и расширениям в различных форматах: https://github.com/blacksmoke26/yii2-manual-chm/releases/tag/2020.08.15

[12] шаблоны приложения: https://github.com/yiisoft/yii2-app-basic/pull/234

[13] расширения: https://github.com/yiisoft/yii2-redis/pull/2143

[14] Access 1.0.0: https://www.yiiframework.com/news/297/access-1-0-0-released

[15] Auth 1.0.0: https://www.yiiframework.com/news/298/auth-1-0-0-released

[16] JSON 1.0.0: https://www.yiiframework.com/news/299/json-1-0-0-released

[17] Injector 1.0.2: https://www.yiiframework.com/news/300/injector-1-0-2-released

[18] Strings: https://www.yiiframework.com/news/301/strings-1-0-0-released

[19] HTTP 1.0.0: https://www.yiiframework.com/news/302/http-1-0-0-released

[20] phan: https://github.com/phan/phan

[21] Psalm: https://psalm.dev/

[22] поддерживается PhpStorm: https://blog.jetbrains.com/phpstorm/2020/07/phpstan-and-psalm-support-coming-to-phpstorm/

[23] пакет для поддержки тестов: https://github.com/yiisoft/test-support

[24] yiisoft/yii-event: https://github.com/yiisoft/yii-event

[25] Пакет data response: https://github.com/yiisoft/data-response

[26] request body-parser: https://github.com/yiisoft/request-body-parser

[27] Bulma: https://github.com/yiisoft/yii-bulma

[28] Главный пакет очередей: https://github.com/yiisoft/yii-queue

[29] драйвера для AMQP: https://github.com/yiisoft/yii-queue-amqp

[30] пакета валидации: https://github.com/yiisoft/validator/pull/73

[31] cycle/schema/clear: https://github.com/yiisoft/yii-cycle/pull/40

[32] фильтруемый data reader: https://github.com/yiisoft/yii-cycle/pull/48

[33] слоя абстрации над базами данных: https://github.com/yiisoft/db

[34] заменили подход с friendly-классом на более понятный: https://github.com/yiisoft/event-dispatcher/pull/31

[35] В формах: https://github.com/yiisoft/form

[36] Cookies переехали из yii-web в отдельный пакет: https://github.com/yiisoft/cookies

[37] почищены интерфейсы в пакете data: https://github.com/yiisoft/data/pull/41

[38] добавлены дополнительные модификаторы: https://github.com/yiisoft/arrays/tree/master/src/Modifier

[39] заменить то, как запускается совпавший маршрут: https://github.com/yiisoft/router/pull/63

[40] можно экспортировать в виде массива: https://github.com/yiisoft/validator/pull/81

[41] очистить директорию не удаляя её: https://github.com/yiisoft/files/pull/14

[42] CSRF переехал в отдельный пакет из yii-web: https://github.com/yiisoft/csrf

[43] То же произошло с сессиями: https://github.com/yiisoft/session

[44] RevertibleMigrationInterface: https://github.com/yiisoft/yii-db-migration/pull/35

[45] Из Yii 2 портирован слой для работы с Redis: https://github.com/yiisoft/db-redis/pull/13

[46] В процессе разработки черновая версия просмотрщика данных на Angular: https://github.com/yiisoft/yii-debug-frontend

[47] план по изменению архитектуры перевода сообщений: https://forum.yiiframework.com/t/message-translation-design/130483

[48] демо приложение: https://github.com/yiisoft/yii-demo

[49] yiisoft/app: https://github.com/yiisoft/app

[50] httpsoft/http-message: https://github.com/httpsoft/http-message

[51] nyholm/psr7: https://github.com/Nyholm/psr7

[52] производительность: https://github.com/devanych/psr-http-benchmark

[53] должна быть переосмыслена: https://github.com/yiisoft/composer-config-plugin/issues/120

[54] на доске в Trello: https://trello.com/b/GiAnIAir/yii-3

[55] редизайн страницы ошибки: https://trello.com/c/61vOAprw/108-redesign-web-app-error-page

[56] пишите мне: https://github.com/samdark

[57] есть на сайте: https://www.yiiframework.com/team

[58] Paweł Brzozowski: https://github.com/bizley

[59] Сергей Предводителев: https://github.com/vjik

[60] Дмитрий Дерепко: https://github.com/xepozz

[61] Packages: https://github.com/yiisoft/docs/blob/master/000-packages.md

[62] Code style: https://github.com/yiisoft/docs/blob/master/010-code-style.md

[63] Tests: https://github.com/yiisoft/docs/blob/master/012-tests.md

[64] Middleware: https://github.com/yiisoft/docs/blob/master/guide/en/structure/middleware.md

[65] Actions: https://github.com/yiisoft/docs/blob/master/guide/en/structure/action.md

[66] Using Yii with Swoole: https://github.com/yiisoft/docs/blob/master/guide/en/tutorial/using-yii-with-swoole.md

[67] руководство ещё не полное: https://github.com/yiisoft/docs/issues/64

[68] Handling errors: https://github.com/yiisoft/docs/blob/master/guide/en/runtime/handling-errors.md

[69] YiiPowered: https://yiipowered.com/

[70] Улучшения покрытия PHP кода в 2020 году: https://habr.com/ru/company/oleg-bunin/blog/519080/

[71] PHP friendly классы: https://rmcreative.ru/blog/post/php-friendly-klassy

[72] Optimize Images with a GitHub Action: https://css-tricks.com/optimize-images-with-a-github-action/

[73] Wilmer Arambula: https://github.com/terabytesoftw

[74] Alexander Nekrasov: https://github.com/thenotsoft

[75] Viktor Babanov: https://github.com/viktorprogger

[76] Rustam Mamadaminov: https://github.com/rustamwin

[77] wiperawa: https://github.com/wiperawa

[78] yiiliveext: https://github.com/yiiliveext

[79] Roman Tsurkanu: https://github.com/romkatsu

[80] Mister-42: https://github.com/Mister-42

[81] Maksym Storchak: https://github.com/strorch

[82] Alexey Kopytko: https://github.com/sanmai

[83] Dmitriy Gritsenko: https://github.com/evil1

[84] Anton Samoylenko: https://github.com/Fantom409

[85] Arman Poghosyan: https://github.com/armpogart

[86] Leonid Chernenko: https://github.com/Nex-Otaku

[87] Andrii Vasyliev: https://github.com/hiqsol

[88] Yuriy Mamaev: https://github.com/execut

[89] DarkDef: https://github.com/darkdef

[90] Aleksei Gagarin: https://github.com/roxblnfk

[91] Michael Härtl: https://github.com/mikehaertl

[92] Ihor Sychevskyi: https://github.com/Arhell

[93] yiiframework.com: https://github.com/yiisoft-contrib/yiiframework.com

[94] Источник: https://habr.com/ru/post/519742/?utm_source=habrahabr&utm_medium=rss&utm_campaign=519742