Хроники Yii3
623 subscribers
43 photos
1.7K links
Описание процесса разработки фреймворка из первых рук 😎

Обсуждение:
https://yangx.top/yii3ru

Сводка по всем пакетам:
https://www.yiiframework.com/status/3.0

Поддержать разработчиков:
https://opencollective.com/yiisoft
加入频道
⚡️ #yiisoftDi

Изменили способ конфигурирования контейнера в Yii Dependency Injection: теперь вместо передачи нескольких параметров (дефинишены, делегаты и др.) в конструктор передаётся реализация интерфейса ContainerConfigInterface, позволяющая получить конфигурацию контейнера (PR).

Пример:

$config = ContainerConfig::create()
->withDefinitions($definitions)
->withProviders($providers)
->withTags($tags)
->withValidate(false)
->withDelegates($delegates);
$container = new Container($config);


⚡️ #yiisoftDocs #yiisoftYiiJquery #yiisoftInjector #yiisoftYiiAuthClient #yiisoftLogTargetDb #yiisoftYiiDebugViewer #yiisoftTranslatorMessageDb #yiisoftYiiDbMigration #yiisoftYiiDebug #yiisoftYiiBootstrap5 #yiisoftTranslatorExtractor #yiisoftYiiDataview #yiisoftYiiSwagger #yiisoftYiiRunnerConsole #yiisoftAppApi #yiisoftYiiRunnerRoadrunner #yiisoftYiiGii #yiisoftYiiRunnerHttp #yiisoftApp #yiisoftDemo

Соответствующие изменения внесены в документацию (PR), приложения и пакеты:

Yii jQuery (PR),
Yii Injector (PR),
Yii External Authentication (PR),
Yii Logging DB Target (PR),
Yii Debug Viewer (PR),
Yii Translator DB Message Storage (PR),
Yii DB Migration (PR),
Yii Debug (PR),
Yii Bootstrap 5 (PR),
Yii Message Extractor (PR),
Yii Data Widgets (PR),
Yii Swagger (PR),
Yii Console Runner (PR),
Yii RoadRunner Runner (PR),
Yii HTTP Runner (PR),
Gii (PR),
Шаблон API-приложения (PR),
Шаблон веб-приложения (PR),
Демо веб-приложения (PR).
⚡️ #yiisoftRouter

Готовим Yii Router к релизу: подняли уровень psalm до 1 (PR) и удалили интерфейсы CurrentRouteInterface.php, GroupInterface, RouteInterface, RouteParametersInterface (PR).

Удалённые интерфейсы вводились для разделения контекстов использования (конфигурирование и получение данных), но практика показала, что это было неудачное решение (типизация по факту некорректная + интерфейсы вводят в заблуждение). Но, чтобы всё-таки повысить удобство публичного API, мы объединили методы, которые требуются только внутри пакета, и пометили их как @internal:

• в классе Route методы getDispatcherWithMiddlewares(), getName(), getMethods(), getPattern(), getHost(), isOverride(), getDefaults(), hasMiddlewares(), getDispatcherWithMiddlewares() объединены в один getData();

• в классе Group методы getCorsMiddleware(), hasCorsMiddleware(), getMiddlewareDefinitions(), getItems(), getPrefix(), getNamePrefix(), getHost() объединены в один getData();

• в классе CurrentRoute методы setRoute() и setArguments() объединены в один setRouteWithArguments();

• метод CurrentRoute::setUri() также помечен как @internal.

—————

⚡️ #yiisoftRouterFastroute #yiisoftRequestModel #yiisoftYiiDebugApi #yiisoftYiiDataview #yiisoftDocs #yiisoftDemo #yiisoftApp #yiisoftDemoApi

Соответствующие изменения были внесены в документацию (PR), приложения и пакеты:

- Yii Router FastRoute Adapter (PR),
- Yii Request Model (PR, PR),
- Yii Debug API (PR),
- Yii Data Widgets (PR),
- Шаблон веб-приложения (PR),
- Демо веб-приложения (PR),
- Демо API-приложения (PR).
👍1
⚡️ #yiisoftDocs

В разделе «Стиль кода» документации добавили соглашение об именовании коллекций: классы, интерфейсы, трейты и переменные, являющиеся коллекцией, должны оканчиваться на Collection (PR).
👍3
⚡️ #yiisoftDocs

В документацию добавили соглашение о поддерживаемых версиях PHP (PR).

Версии PHP, поддерживаемые пакетами и шаблонами приложений, зависят от жизненного цикла версий PHP.

• Версии пакетов с активной поддержкой ДОЛЖНЫ поддерживать все версии PHP, которые находятся в стадии активной поддержки.

• У пакетов и шаблонов приложений ДОЛЖНЫ быть версии получающие исправления ошибок и проблем безопасности, поддерживающие версии PHP, которые находятся в стадии поддержки безопасности.

• Пакеты и шаблоны приложений МОГУТ иметь поддерживаемые версии, которые работают с неподдерживаемыми версиями PHP.

• Поднятие минимальной версии PHP в пакете или шаблоне приложения считается минорным изменением.

• Исключение: пакеты и шаблоны приложений МОГУТ не поддерживать PHP 7.4.
🔥7
⚡️ #yiisoftDocs

В документации зафиксировали соглашение об использовании атрибутов PhpStorm (PR).

Атрибуты PhpStorm МОГУТ использоваться в коде, но пакет jetbrains/phpstorm-attributes ДОЛЖЕН быть добавлен как dev-зависимость.
⚡️ #yiisoftDocs

В документации актуализировали примеры кода в статье о доверенных запросах (PR).
⚡️ #yiisoftDocs

В документации добавили новое соглашение: в composer.json в качестве логического оператора ИЛИ в диапазонах версий должна использоваться одиночная вертикальная черта | (PR).
🎉4
⚡️ #yiisoftDocs

Во внтуренней документации добавили новое соглашение по логу изменений: теперь имена авторов будут указываться с @ и, соответственно, на GitHub будут отображаться ссылками на профиль (PR).
🔥 #Новости #yiisoftDemo #yiisoftDemoApi #yiisoftDocs #yiisoftPackageTemplate #yiisoftYiiDevTool

Часть пакетов была помечена как "внутренние" и теперь не учитывается на странице с текущим состоянием разработки пакетов Yii3.

Пакеты, к которым был добавлен тег internal:
- Демо веб-приложения,
- Демо API-приложения,
- Документация,
- Yii Package Template,
- Yii Development Tool.
👍1
⚡️ #yiisoftDocs

В документации добавили соглашение о стиле кода для методов, вызываемых «цепочкой» (commit).
🔥2
⚡️ #yiisoftDocs

В документации актуализировали ссылки в кодексе поведения (PR).
👍2
⚡️ #yiisoftDocs

В документации актуализировали ссылки на yiiframework.com (PR).
⚡️ #yiisoftDocs

В документации актуализировали ссылки на внешние ресурсы (PR).
🔥1
⚡️ #yiisoftDocs

В документации актуализировали ссылки на внешние ресурсы (PR).
🔥1
⚡️ #yiisoftDocs

В документации исправили битые ссылки на страницы OWASP Foundation (PR).
⚡️ #yiisoftDocs

В документации добавили соглашение об использовании верблюжьей (camelCase) нотации для имён классов, методов, переменных и т. д. (PR).
👍3
⚡️ #yiisoftDocs

В документации из соглашения о поддерживаемых версиях PHP убрали строчку о том, что PHP 7.4 может не следовать им (PR).

Exception: PHP 7.4 MIGHT not be considered.
👍5