🎁 #yiisoftEventDispatcher #Патч
Патч-релиз диспетчера событий Yii Event Dispatcher 1.0.1 (PR).
• Добавлена поддержка слушателей с объединённым типом события.
Например:
Например:
Патч-релиз диспетчера событий Yii Event Dispatcher 1.0.1 (PR).
• Добавлена поддержка слушателей с объединённым типом события.
Например:
$listenerCollection->add(• В методе
static function (EventA|EventB $event): void {}
);
ListenerCollection::add()
добавлена возможность добавлять одного слушателя сразу к нескольким событиям. Например:
$listenerCollection->add(Спасибо @ncou за обнаруженную ошибку с объединённым типом события.
$listener,
EventA::class,
EventB::class
);
⚡️ #yiisoftWidget
В виджете
+ Небольшие улучшения в doc-блоках.
В виджете
Menu
(пакет Yii Widget) в публичных методах Menu::currentPath()
, Menu::firstItemCssClass()
и Menu::lastItemCssClass()
в качестве аргумента запрещено передавать null
, можно передавать только строку (PR).+ Небольшие улучшения в doc-блоках.
⚡️ #yiisoftDi
В пакете Yii Dependency Injection удалён контекстный контейнер, так как нигде не используется (PR).
В пакете Yii Dependency Injection удалён контекстный контейнер, так как нигде не используется (PR).
⚡️ #yiisoftYiiDevTool
В инструменте для разработки Yii Dev Tool пакеты теперь обрабатываются в алфавитном порядке (PR).
В инструменте для разработки Yii Dev Tool пакеты теперь обрабатываются в алфавитном порядке (PR).
⚡️ #yiisoftYiiSentry
Первый строчки кода в пакете Yii Sentry (PR): реализована мидлварь для перехвата исключений и добавлена конфигурация контейнера.
Первый строчки кода в пакете Yii Sentry (PR): реализована мидлварь для перехвата исключений и добавлена конфигурация контейнера.
⚡️ #yiisoftPackageTemplate
В пакете-шаблоне Yii Package Template подготовили конфигурации GitHub Actions для ежедневного запуска (PR).
Это позволит оперативно узнавать о том, что в пакете что-то сломалось из-за изменений в зависимостях.
В пакете-шаблоне Yii Package Template подготовили конфигурации GitHub Actions для ежедневного запуска (PR).
Это позволит оперативно узнавать о том, что в пакете что-то сломалось из-за изменений в зависимостях.
⚡️ #yiisoftProxy
В пакете Yii Proxy исправлена ошибка с некорректным проксированием исключений, что в некоторых случаях приводило к дублированию текста ошибки (PR).
Спасибо @mahmud128 за обнаруженную проблему.
В пакете Yii Proxy исправлена ошибка с некорректным проксированием исключений, что в некоторых случаях приводило к дублированию текста ошибки (PR).
Спасибо @mahmud128 за обнаруженную проблему.
⚡️ #yiisoftFactory
В пакете Yii Factory из конфигурации автодополнения для PhpStorm (файл
В пакете Yii Factory из конфигурации автодополнения для PhpStorm (файл
.phpstorm.meta.php
) удалены настройки для удалённого ранее метода Factory::get()
(PR).⚡️ #yiisoftPackageTemplate
В пакете-шаблоне Yii Package Template улучшен шаблон сообщения к пул-реквесту на GitHub (PR): закомментирована строка с инструкцией по заполнению поля «исправленные проблемы».
В пакете-шаблоне Yii Package Template улучшен шаблон сообщения к пул-реквесту на GitHub (PR): закомментирована строка с инструкцией по заполнению поля «исправленные проблемы».
⚡️ #yiisoftApp #yiisoftAppApi
В шаблонах приложений Yii Application Template (PR) и Yii API Template (PR) конфигурация PSR-17 (фабрики HTTP-объектов) перенесена из web-конфигурации в общую конфигурацию, так как эти фабрики могут потребовать везде, где используется HTTP-клиент, а он требуется не только в web-приложении, но, в некоторых случаях, и в консольных командах.
В шаблонах приложений Yii Application Template (PR) и Yii API Template (PR) конфигурация PSR-17 (фабрики HTTP-объектов) перенесена из web-конфигурации в общую конфигурацию, так как эти фабрики могут потребовать везде, где используется HTTP-клиент, а он требуется не только в web-приложении, но, в некоторых случаях, и в консольных командах.
⚡️ #yiisoftFactory
В Yii Factory добавлены дополнительные тесты (PR).
В процессе разработки фабрики и контейнера зависимостей большинство тестов были сделаны именно в контейнере. В рамках этого пул-реквеста добавили много аналогичных тестов для фабрики. Помимо увеличения покрытия кейсов использования тестами, это позволило выявить несколько проблем в фабрике (см. issues).
В Yii Factory добавлены дополнительные тесты (PR).
В процессе разработки фабрики и контейнера зависимостей большинство тестов были сделаны именно в контейнере. В рамках этого пул-реквеста добавили много аналогичных тестов для фабрики. Помимо увеличения покрытия кейсов использования тестами, это позволило выявить несколько проблем в фабрике (см. issues).
⚡️ #yiisoftFactory
В Yii Factory для метода
Например:
В Yii Factory для метода
Factory::create()
добавлены psalm-аннотации, позволяющие анализатору понять тип возвращаемого объекта, если в качестве конфигурации передано имя класса (PR).Например:
// return instance of class "Car"
$factory->create(Car::class);
// return mixed
$factory->create(['class' => Car::class]);
// return mixed
$factory->create('car');
⚡️ #yiisoftProxy
В пакете Yii Proxy откатили PR, который исправлял ошибку с некорректным проксированием исключений. Решение подразумевало клонирование объекта-исключения, но оказалось это вызывает ошибку. Будем думать как сделать по другому.
В пакете Yii Proxy откатили PR, который исправлял ошибку с некорректным проксированием исключений. Решение подразумевало клонирование объекта-исключения, но оказалось это вызывает ошибку. Будем думать как сделать по другому.
⚡️ #yiisoftView
В пакете Yii View в методах
При этом если значение "по-умолчанию" не передано, а запрашиваемый параметр не существует, то будет выброшено исключение
Примеры:
В пакете Yii View в методах
View::getCommonParameter()
и WebView::getCommonParameter()
добавлена поддержка второго параметра, задающего значение "по-умолчанию" (PR).При этом если значение "по-умолчанию" не передано, а запрашиваемый параметр не существует, то будет выброшено исключение
InvalidArgumentException
.Примеры:
$view->setCommonParameters([
'name' => 'Vasya',
]);
// return "Vasya"
$view->getCommonParameter('name');
// return "Vasya"
$view->getCommonParameter('name', 'Kolya');
// throw InvalidArgumentException
$view->getCommonParameter('age');
// return 42
$view->getCommonParameter('age', 42);
⚡️ #yiisoftFactory
В пакете Yii Factory несколько улучшений, связанных с дефинишенами (PR).
• В дефинишенах, заданных массивом, теперь можно не прописывать класс, если идентификатор дефинишена является именем класса (в DI-контейнере это так и работало, а вот в фабрике это не поддерживалось). Пример:
В пакете Yii Factory несколько улучшений, связанных с дефинишенами (PR).
• В дефинишенах, заданных массивом, теперь можно не прописывать класс, если идентификатор дефинишена является именем класса (в DI-контейнере это так и работало, а вот в фабрике это не поддерживалось). Пример:
ContactMailer::class => [• Исправлена ошибка: в случаях, когда в фабрику не передавался контейнер для разрешения зависимостей (то есть зависимости разрешает сама фабрика), для зависимостей не использовались дефинишены фабрики. Теперь используются.
// Ранее, если не указать класс, то фабрика кидала исключение
// 'class' => ContactMailer::class,
'__construct()' => [
'to' => '[email protected]',
],
],
⚡️ #yiisoftWidget
В пакете Yii Widget улучшен пример использования в виджете
В пакете Yii Widget улучшен пример использования в виджете
Breadcrumbs
+ сделаны небольшие изменения в psalm-аннотациях (PR).⚡️ #yiisoftView
В документации Yii View дополнен блок про использование методов
В документации Yii View дополнен блок про использование методов
hasCommonParameter()
и getCommonParameter()
+ сделаны небольшие изменения в psalm-аннотациях (PR).⚡️ #yiisoftDocs
Исправлены битые ссылки в документации в разделе "Running Applications" (PR).
Спасибо Andrew за пул-реквест 👍
Исправлены битые ссылки в документации в разделе "Running Applications" (PR).
Спасибо Andrew за пул-реквест 👍