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

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

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

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

В демо веб-приложения вместо Yii Mailer Swiftmailer теперь используется Yii Mailer Symfony (PR).
⚡️ #yiisoftConfig

В пакете Yii Config исправлено несколько ошибок:

• Для файлов из окружений (environments) не применялась опция source-directory (PR);

• В случаях, когда для одной конфигурации указывалось несколько файлов, объединение выполнялось некорректно (PR).
⚡️ #yiisoftYiiDevTool

В Yii Development Tool добавлен пакет Yii Definitions (PR).
⚡️ #yiisoftDefinitions

В пакет Yii Definitions добавлены дефинишены и соответствующие тесты из Yii Factory (PR).
⚡️ #yiisoftValidator

В примерах использования валидаторов в readme пакета Yii Validator старый синтаксис создания валидатора изменён на актуальный с помощью статического метода rule() (PR).

Спасибо Евгению Ткаченко за PR 👍
⚡️ #yiisoftDocs

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

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

Хелперы ReferencesArray и DynamicReferencesArray перенесены из пакета Yii Dependency Injection (PR) в пакет Yii Definitions (PR).

В Yii Factory удалены дефинишены и классы для работы с ними, которые ранее были перенесены в Yii Definitions (PR).

—————

#yiisoftAssets #yiisoftYiiConsole #yiisoftCsrf #yiisoftDb #yiisoftForm #yiisoftMailerSwiftmailer #yiisoftMailerSymfony #yiisoftYiiQueue #yiisoftTranslator #yiisoftView #yiisoftWidget #yiisoftYiiBootstrap5 #yiisoftYiiDataview #yiisoftYiiDebug #yiisoftYiiDebugViewer #yiisoftYiiSwagger #yiisoftApp #yiisoftAppApi #yiisoftDemo #yiisoftDemoApi

Все пакеты и приложения, использующие дефинишены, переделаны на работу с пакетом Yii Definitions:

- Yii Assets (PR)
- Yii Bootstrap 5 (PR)
- Yii Console (PR)
- Yii CSRF (PR)
- Yii Data Widgets (PR)
- Yii DB (PR)
- Yii Debug (PR)
- Yii Debug Viewer (PR)
- Yii Form (PR)
- Yii Mailer Swiftmailer (PR)
- Yii Mailer Symfony (PR)
- Yii Message Translator (PR)
- Yii Queue (PR)
- Yii Swagger (commit)
- Yii View (PR)
- Yii Widget (PR)

- шаблон веб-приложения (PR),
- шаблон API-приложения (PR),
- демо веб-приложения (PR),
- демо API-приложения (PR).
⚡️ #yiisoftApp

Рефакторинг точек входа в шаблоне приложении Yii Application Template (PR).

• Код запуска консольного приложения вынесен из yii в новый класс ConsoleApplicationRunner.

• Класс для запуска веб-приложения переименован из ApplicationRunner в WebApplicationRunner.

• Для запуска bootstrap-кода создан класс BootstrapRunner.

• Прочие мелкие улучшения.
⚡️#yiisoftDemo

Небольшой рефакторинг точки входа в консоль в демо веб-приложения (PR).
⚡️ #yiisoftYiiSwagger

Поправили тесты в пакете Yii Swagger, они не проходили из-за изменений в Yii View Extension и Yii Data Response (PR).
⚡️ #yiisoftConfig

В пакете Yii Config добавлен тест на подключение файлов конфигураций из вложенных папок (PR).

Например, для такого пути config/common/*/*.php будут подключены все PHP-файлы из первого уровня вложенности.

Поддержку рекурсивной вложенности (например, так config/common/**/*.php) намеренно не стали делать, так как сборка конфигов происходит в рантайме, а рекурсивный обход папок негативно скажется на производительности.
⚡️ #yiisoftYiiEvent

В пакете Yii Event улучшены сообщения об ошибках (PR): помимо информации о некорректном слушателе или имени события теперь выводится сам этот слушатель/событие, что позволяет быстрее понять где закралась ошибка.
⚡️ #yiisoftDemo

По аналогии с шаблоном веб-приложения выполнен рефакторинг точек входа в демо веб-приложения (PR).

• Код запуска консольного приложения вынесен из yii в новый класс ConsoleApplicationRunner.

• Класс для запуска веб-приложения переименован из ApplicationRunner в WebApplicationRunner.

• Для запуска bootstrap-кода создан класс BootstrapRunner.

• Прочие мелкие улучшения.
⚡️ #yiisoftDi #yiisoftDefinitions

Выполнен рефакторинг работы с делегатами контейнера в Yii Dependency Injection (PR, PR).

• Делегат представляет собой функцию обратного вызова вида function (ContainerInterface $container): ContainerInterface, возвращающую контейнер, из которого будет выполнена попытка получения сервиса, если он не был найден в основном контейнере.

• Делегаты добавляются в контейнер через конструктор.

Также в рамках этих изменений в исключении Yiisoft\Definitions\Exception\NotFoundException добавлен второй параметр, в который передаётся стек разрешения зависимостей при создании сервиса. Это позволит гораздо быстрее понять, где конкретно возникла ошибка.
⚡️#yiisoftYiiConsole

В консоли Yii Console у команд добавлена поддержка статического свойства $defaultDescription, которое содержит описание команды (PR).

Если у команды заданы статические свойства $defaultName и $defaultDescription, то при выводе списка команд в консоли такие команды не будут инициализироваться.
⚡️ #yiisoftConfig

В пакете Yii Config при выводе сравнения файлов в консоли изменён порядок сравнения файлов: раньше сравнивался файл из вендора с файлом из приложения, теперь наоборот (PR).
⚡️ #yiisoftYiiQueue

Сделали рефакторинг и исправили ошибки в консольных командах пакета Yii Queue: теперь они работают и поддерживают "ленивую" загрузку (PR).

Спасибо Алексею Черноусову за PR и Александру Борисову за ревью 👍
🎁 #yiisoftAssets #yiisoftCsrf #yiisoftDataResponse #yiisoftMailerSwiftmailer #yiisoftTranslator #yiisoftView #Релиз #ПатчРелиз

В связи с переходом на использование дефинишенов из пакета Yii Definitions сделаны патч-релизы пакетов, использующих их в своих конфигурациях:

Yii Assets 1.0.1
Yii CSRF 1.0.3
Yii Data Response 1.0.1
Yii Mailer Swiftmailer 3.0.1
Yii Message Translator 1.0.1
Yii View 2.0.1
⚡️ #yiisoftApp

В шаблоне приложения Yii Application Template добавлен ежедневный запуск тестов через GitHub Workflow (PR).
⚡️ #yiisoftFactory

В Yii Factory изменена логика создания объектов и разрешения зависимостей (PR). Новая логика представлена на блок-схеме.
⚡️ #yiisoftData

В пакете Yii Data уровень psalm увеличен до 2 (PR).