Size: a a a

2020 April 03

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
@yiiliveext полегче. Мы тут все одну штуку пилим.
А что я написал такого? Там элементарно делается мидлтварь SetXmlFormat и грузиться лениво, сейчас фреймворк к этому подталкивает.
источник

Д

Дмитрий in Yii Framework 3
Алексей R
Вы говорите, что не надо в общем пайплайне ленивости, т.к. засерается контейнер (парой записей в хеш-таблице? рили?), но вводите это же самое принудительно в роутер. А контейнер контроллерами не засрётся в РР?
о, надобы контроллеры не сохранять там :)
источник

AM

Alexander Makarov in Yii Framework 3
Алексей R
Вы говорите, что не надо в общем пайплайне ленивости, т.к. засерается контейнер (парой записей в хеш-таблице? рили?), но вводите это же самое принудительно в роутер. А контейнер контроллерами не засрётся в РР?
Ну можно и в общем сделать. У нас не всё гладко с производительностью.
источник

А

Алексей R in Yii Framework 3
Дмитрий
дык закинь fn() => new YourClass()
у меня чёт там не взлетело такое ) может на версии роутера до этого?
источник

Д

Дмитрий in Yii Framework 3
мб аннотацию сделаем @notContainered?)
источник

AM

Alexander Makarov in Yii Framework 3
Дмитрий
мб аннотацию сделаем @notContainered?)
Не надо.
источник

Д

Дмитрий in Yii Framework 3
Алексей R
у меня чёт там не взлетело такое ) может на версии роутера до этого?
ну сейчас же там нужно callable только, поэтому должно лететь
источник

А

Алексей R in Yii Framework 3
Дмитрий
мб аннотацию сделаем @notContainered?)
я бы сделал weakRefContainer :D и он бы всё зарешал
источник

Д

Дмитрий in Yii Framework 3
Дмитрий
дык закинь fn() => new YourClass()
@yiiliveext такое возможно же?
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
Ну можно и в общем сделать. У нас не всё гладко с производительностью.
Пайплайн там не ленивый по причине того, что там нельзя установить контекст как в роутере. Все будет истанцированно из дефолтного контейнера, а это иногда нужно нет так. Да и кейсов полезности ленивости я не услышал.
источник

Д

Дмитрий in Yii Framework 3
Дмитрий
@yiiliveext такое возможно же?
а, там нужно вроде fn($req, $h) => (new Class())->process($req, $h);
источник

AM

Alexander Makarov in Yii Framework 3
Алексей R
я бы сделал weakRefContainer :D и он бы всё зарешал
Не вижу как.
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
а, там нужно вроде fn($req, $h) => (new Class())->process($req, $h);
Да, по идее должно сработать
источник

А

Алексей R in Yii Framework 3
Dmitriy S
Да, по идее должно сработать
Return value of class@anonymous::process() must be an instance of Psr\Http\Message\ResponseInterface, instance of App\Middleware\SetFormat returned

// ->addMiddleware($mw(SetFormat::class, ['html', null]))
->addMiddleware(fn () => new SetFormat('html', null))
источник

А

Алексей R in Yii Framework 3
SetFormat implements MiddlewareInterface
источник

А

Алексей R in Yii Framework 3
fn () должен вернуть респонс а не мидлварь
источник

А

Алексей R in Yii Framework 3
собсна мой костыль вызывает мидлварь внутри анонимки и возвращает респонс ))
источник

А

Алексей R in Yii Framework 3
при этом можно передать параметры в экшен, но это мб лишнее
источник

AM

Alexander Makarov in Yii Framework 3
мне, в общем, не критично откатить возможность инстансы юзать, но в гайде лучше не показывать, что так можно
источник

А

Алексей R in Yii Framework 3
в гайде нужна инструкция для оптимизации и только
источник