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

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

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

Поддержать разработчиков:
https://opencollective.com/yiisoft
加入频道
🎁 #yiisoftMailer #Релиз #МажорныйРелиз

Мажорный релиз Yii Mailer 3.0.0

В интерфейсе Yiisoft\Mailer\MessageInterface добавлены методы для получения и установки заголовков (PR):

MessageInterface::getDate()
Возвращает дату отправки сообщения или null, если она не задана.

MessageInterface::withDate()
Возвращает новый экземпляр сообщения с указанной датой отправки.

MessageInterface::getPriority()
Возвращает приоритет сообщения.

MessageInterface::withPriority()
Возвращает новый экземпляр сообщения с указанным приоритетом.

MessageInterface::getReturnPath()
Возвращает адрес возврата.

MessageInterface::withReturnPath()
Возвращает новый экземпляр сообщения с указанным адресом возврата,

MessageInterface::getSender()
Возвращает адрес отправителя.

MessageInterface::withSender()
Возвращает новый экземпляр сообщения с указанным адресом отправителя.

—————

🎁 #yiisoftMailerSwiftmailer #yiisoftLogTargetEmail

Также сделаны мажорные релизы пакетов:

Yii Mailer Swiftmailer 3.0.0 — реализованы новые методы + добавлена нормализация адресов, возвращаемых методами getFrom(), getTo(), getCc() и getBcc() (PR).

Yii Logging Email Target 3.0.0 — обновлена мажорная версия зависимости yiisoft/mailer.

—————

⚡️ #yiisoftMailerSymfony

В пакете Yii Mailer Symfony также реализованы новые методы интерфейса Yiisoft\Mailer\MessageInterface (PR).

—————

⚡️ #yiisoftDocs

В документации информация о новых методах интерфейса добавлена в раздел Mailing (PR).

—————

Спасибо @batyrmastyr за идею расширения интерфейса 👍
⚡️ #yiisoftDocs

Заменили логотип Yii в документации на новый (PR).

Этот же файл логотипа отображается во всех пакетах Yii 3 в readme.
⚡️ #yiisoftDocs #yiisoftRequestModel

Актуализировано описание в части работы с роутингом в пакете Yii Request Model (PR) и документации (PR).
⚡️ #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