Size: a a a

2020 September 09

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
А как это сделать в пакете?
Есть пример?
В events-web.php
ApplicationStartup::class => [
       fn (object $event, ContainerInterface $container) => WidgetFactory::initialize($container) ,
   ],
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
В events-web.php
ApplicationStartup::class => [
       fn (object $event, ContainerInterface $container) => WidgetFactory::initialize($container) ,
   ],
Красиво :)
Попробую в csrf. Спасибо!
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
В events-web.php
ApplicationStartup::class => [
       fn (object $event, ContainerInterface $container) => WidgetFactory::initialize($container) ,
   ],
в RR ApplicationStartup событие вызывается на каждый запрос?
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
в RR ApplicationStartup событие вызывается на каждый запрос?
Нет, там тебе надо BeforeRequest или как там оно называется
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
Нет, там тебе надо BeforeRequest или как там оно называется
окей, поищу/попробу
источник

DS

Dmitriy S in Yii Framework 3
источник

СП

Сергей Предводителев... in Yii Framework 3
Если я в пакете yiisoft/csrf в конфиге evetns-web использую класс из yiisoft/web, но добавлять yiisoft/web в зависимости НЕ буду. Это норм? :)
источник

СП

Сергей Предводителев... in Yii Framework 3
Хочу BeforeRequest событие использовать... но оно только в web(
источник

RM

Rustam Mamadaminov in Yii Framework 3
Сергей Предводителев
Если я в пакете yiisoft/csrf в конфиге evetns-web использую класс из yiisoft/web, но добавлять yiisoft/web в зависимости НЕ буду. Это норм? :)
нет
источник

СП

Сергей Предводителев... in Yii Framework 3
😔
источник

СП

Сергей Предводителев... in Yii Framework 3
Раз уж идёт заточка по RR и есть задача обнуления классов при запуске приложения...

Может быть к:
1) Конфигурация контейнера
2) Провайдеры
3) События

Добавить конфигурацию bootstrap.php / bootstrap-console.php / bootstrap-web.php ?

Будт массив по аналогии с провайдерами.

[
 'yiisoft/package' => [
   '__class' => Bootstrap::class,
   '__construct()' => [
     $params['yiisoft/package']['param']['path'],
   ],
 ],
 'yiisoft/package2' => Bootstrap::class,
 'yiisoft/package3' => static function(ContainerInterface $container) {
   ... something ...
 },
]

Классы должны реализовывать какой нибудь BootstrapInterface с одним методом bootstrap().

Перед  $application->start(); проходить по массиву и выполнять классы/функции.
источник

СП

Сергей Предводителев... in Yii Framework 3
И тогда в yiisoft/csrf я бы мог сделать файлик config/bootstrap-web.php c содержимым:

return [
   'yiisoft/csrf' => static fn(ContainerInterface $container) => CsrfToken::initialize(),
];

И это бы решило проблему :)
И по аналогии можно было бы в yiisoft/widget сделать...
источник

T

TradersVE in Yii Framework 3
redis only work version 4 :( in yii2
источник

В

Виктор in Yii Framework 3
Сергей Предводителев
Если я в пакете yiisoft/csrf в конфиге evetns-web использую класс из yiisoft/web, но добавлять yiisoft/web в зависимости НЕ буду. Это норм? :)
Да, так и надо.
источник

В

Виктор in Yii Framework 3
Если этот класс там действительно нужен
источник

В

Виктор in Yii Framework 3
https://github.com/yiisoft/docs/blob/master/000-packages.md#configs-and-defaults (последний раздел этого документа)
источник

СП

Сергей Предводителев... in Yii Framework 3
Виктор
Да, так и надо.
Класс без зависимости?
источник

СП

Сергей Предводителев... in Yii Framework 3
Package must not have dependencies in require section of composer.json that are used in config only.
источник

СП

Сергей Предводителев... in Yii Framework 3
О как, тогда сделаю, добавлю в пакет csrf
источник

СП

Сергей Предводителев... in Yii Framework 3
Нужно добавить yiisoft/csrf в Packagist. Кто может?
источник