⚡️ #yiisoftDi
В пакете Yii Dependency Injection улучшили сообщения об ошибках в композитном контейнере (PR).
Пример нового сообщения:
В пакете Yii Dependency Injection улучшили сообщения об ошибках в композитном контейнере (PR).
Пример нового сообщения:
No definition or class found or resolvable in composite container:
1. Container Yiisoft\Di\Container #$container1Id: No definition or class found or resolvable for "test" while building "test".
2. Container Yiisoft\Di\Container #$container2Id: No definition or class found or resolvable for "test" while building "test".
⚡️ #yiisoftDemo
Несколько улучшений демо веб-приложения.
• Сделали рефакторинг авторизации (PR, PR).
• Адаптировали приложение к последним изменениям в Yii Router (PR, PR).
Несколько улучшений демо веб-приложения.
• Сделали рефакторинг авторизации (PR, PR).
• Адаптировали приложение к последним изменениям в Yii Router (PR, PR).
⚡️ #yiisoftYiiDbMigration
Метод
Метод
MigrationService::findMigrationPath()
из Yii DB Migration теперь возвращает путь с уже обработанными алиасами (PR).⚡️ #yiisoftUser
В пакете Yii User в куку для аутентификации добавили информацию о сроке действия токена и установили срок жизни куки равным сроку действия токена (PR).
Так как куку можно легко поправить в браузере, то в приложении нужно использовать один из двух вариантов:
1) кодировать куку (например, как это сделано в демо веб-приложения: мидлварь + её конфигурация);
2) дополнительно сохранять срок действия токена аутентификации на сервере и использовать его для проверки.
В пакете Yii User в куку для аутентификации добавили информацию о сроке действия токена и установили срок жизни куки равным сроку действия токена (PR).
Так как куку можно легко поправить в браузере, то в приложении нужно использовать один из двух вариантов:
1) кодировать куку (например, как это сделано в демо веб-приложения: мидлварь + её конфигурация);
2) дополнительно сохранять срок действия токена аутентификации на сервере и использовать его для проверки.
⚡️ #yiisoftDi
Изменили способ конфигурирования контейнера в Yii Dependency Injection: теперь вместо передачи нескольких параметров (дефинишены, делегаты и др.) в конструктор передаётся реализация интерфейса
Пример:
⚡️ #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).
Изменили способ конфигурирования контейнера в 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).
⚡️ #yiisoftYiiRunnerRoadrunner
Исправили некорректный пример кода в readme пакета Yii RoadRunner Runner (PR).
Исправили некорректный пример кода в readme пакета Yii RoadRunner Runner (PR).
⚡️ #yiisoftDefinitions #yiisoftDi
В контейнере зависимостей Yii Dependency Injection добавили возможность включить «строгий» режим (PR), в этом режиме контейнер будет работать только с явно определёнными дефинишенами.
Строгий режим включается в конфигурации контейнера:
—————
Контейнер работает на базе Yii Definitions, в котором также добавили строгий режим для хранилища
В контейнере зависимостей Yii Dependency Injection добавили возможность включить «строгий» режим (PR), в этом режиме контейнер будет работать только с явно определёнными дефинишенами.
Строгий режим включается в конфигурации контейнера:
$config = ContainerConfig::create()->withStrictMode(true);
$container = new Container($config);
—————
Контейнер работает на базе Yii Definitions, в котором также добавили строгий режим для хранилища
DefinitionStorage
(PR).⚡️ #yiisoftYiiCycle
В ветке 2.0 пакете Yii Cycle ORM фабрика
В ветке 2.0 пакете Yii Cycle ORM фабрика
DbalFactory
адаптирована к последним изменениям в Cycle ORM (PR).⚡️ #yiisoftDefinitions
Несколько улучшений в Yii Definitions.
• Добавлена возможность указать несколько параметров для методов с переменным количеством аргументов (PR).
• Полностью покрыли код тестами и сделали небольшой рефакторинг, не затрагивающий публичный API (PR).
Несколько улучшений в Yii Definitions.
• Добавлена возможность указать несколько параметров для методов с переменным количеством аргументов (PR).
• Полностью покрыли код тестами и сделали небольшой рефакторинг, не затрагивающий публичный API (PR).
⚡️ #yiisoftDi
Несколько улучшений в Yii Dependency Injection:
• Запретили расширения для
• В документации добавили блок «Указание метаданных для определений сервисов, не являющихся массивом» (PR).
• Увеличили покрытие кода тестами и сделали небольшой рефакторинг, не затрагивающий публичный API (PR).
Несколько улучшений в Yii Dependency Injection:
• Запретили расширения для
ContainerInterface
(PR).• В документации добавили блок «Указание метаданных для определений сервисов, не являющихся массивом» (PR).
• Увеличили покрытие кода тестами и сделали небольшой рефакторинг, не затрагивающий публичный API (PR).
⚡️ #yiisoftYiiConsole #yiisoftMailerSymfony
Добавлена поддержка 6й версии пакетов Symfony:
•
•
Добавлена поддержка 6й версии пакетов Symfony:
•
symfony/console
в Yii Console (PR),•
symfony/mailer
в Yii Mailer Symfony Mailer Extension (PR).⚡️ #yiisoftDi
Ещё немного изменений в Yii Dependency Injection (PR):
• финализировали класс
• в методе
• покрытие тестами увеличили до 100%.
Ещё немного изменений в Yii Dependency Injection (PR):
• финализировали класс
StateResetter
,• в методе
StateResetter::setResetters()
добавили проверки на корректность ресеттеров,• покрытие тестами увеличили до 100%.
⚡️ #yiisoftYiiBootstrap5
В пакете Yii Bootstrap 5 в виджете
В пакете Yii Bootstrap 5 в виджете
Dropdown
добавили методы itemOptions()
и linkOptions()
(PR).⚡️ #yiisoftDefinitions
Небольшое изменение синтаксиса определений сервисов в Yii Definitions: если в именованный variadic-параметр передать не массив, то будет брошено исключение (PR).
Небольшое изменение синтаксиса определений сервисов в Yii Definitions: если в именованный variadic-параметр передать не массив, то будет брошено исключение (PR).
#yiisoftDefinitions #МажорныйРелиз #Релиз
🎁 Yii Definitions 1.0.0
Пакет предоставляет синтаксиc для описания способа создания и конфигурирования служб или объектов и включает в себя:
• Определения (
• Ссылки (
Сам по себе пакет не очень полезен для конечных пользователей фреймворка, но он является основой, на которой построены контейнер зависимостей Yii Dependency Injection и фабрика Yii Factory.
У пакета, как обычно, высокие технические показатели качества:
- 100% покрытие тестами;
- 92,9% MSI;
- 96,7% уровень покрытия типами;
- Psalm уровень 1.
🎁 Yii Definitions 1.0.0
Пакет предоставляет синтаксиc для описания способа создания и конфигурирования служб или объектов и включает в себя:
• Определения (
Definitions
), описывающие создаваемые службы или объекты (включает синтаксис, его валидацию и преобразование в объекты).• Ссылки (
Reference
) и динамические ссылки (DynamicReference
), указывающие на другие определения (включают дополнительную утилиту, позволяющую задать ссылки на несколько определений одновременно).Сам по себе пакет не очень полезен для конечных пользователей фреймворка, но он является основой, на которой построены контейнер зависимостей Yii Dependency Injection и фабрика Yii Factory.
У пакета, как обычно, высокие технические показатели качества:
- 100% покрытие тестами;
- 92,9% MSI;
- 96,7% уровень покрытия типами;
- Psalm уровень 1.
⚡️ #yiisoftUser
В пакете Yii User в классе
Этот метод можно использовать в долгоживущих приложений, работающих в event-loop (RoadRunner, Swoole и др.).
В пакете Yii User в классе
CurrentUser
добавили метод clear()
, который сбрасывает состояние объекта (PR).Этот метод можно использовать в долгоживущих приложений, работающих в event-loop (RoadRunner, Swoole и др.).
⚡️ #yiisoftRouter
В конфигурации пакета
В конфигурации пакета
Yii Router
добавили сброс аргументов при сбросе состояния класса CurrentRoute
(PR).⚡️ #yiisoftUser #yiisoftDemo
В пакете Yii User для класса текущего пользователя
В демо веб-приложения добавили конфигурацию
В пакете Yii User для класса текущего пользователя
CurrentUser
сессия теперь передаётся не через конструктор, а через новый метод withSession()
+ сделаны иммутабельными и переименованы существующие методы (PR):setAccessChecker()
→ withAccessChecker()
,setAuthTimeout()
→ withAuthTimeout()
,setAbsoluteAuthTimeout()
→ withAbsoluteAuthTimeout()
.В демо веб-приложения добавили конфигурацию
CurrentUser
с использованием новых методов (PR).⚡️ #yiisoftDi
Продолжаем готовить Yii Dependency Injection к релизу.
• Ресеттеры состояния сервисов из атрибутов
• Улучшена валидация конфигурации (теги и др.) + уровень Psalm поднят до 1 (PR).
Продолжаем готовить Yii Dependency Injection к релизу.
• Ресеттеры состояния сервисов из атрибутов
reset
в дефинишенах теперь работают только в случаях, когда для контейнера не задано определение сервиса StateResetter
или его расширение. Другими словами, если вы определили для контейнера StateResetter
, то для сброса состояния будет использовать именно он (PR, PR).• Улучшена валидация конфигурации (теги и др.) + уровень Psalm поднят до 1 (PR).