Size: a a a

2021 March 29

VC

Vladimir Chernyshev in PHP
Ruslan
я просто только начал изучать twig еще не до конца понял что к чему. Получается я создаю xml-файл, прописывваю там шаблон. а при каждом запуске скрипта фид будет перезаписываться согласно данным который пришли в скрипт?
создаешь feed.xml.twig, и при каждом запуске скрипта создаешь feed.xml
источник

VC

Vladimir Chernyshev in PHP
если ты про генерацию файлов на диске
источник

R

Ruslan in PHP
Vladimir Chernyshev
если ты про генерацию файлов на диске
да, я именно про это. Площадкам же нужно ссылку на фид передовать
источник

VS

Vladyslav Serednyako... in PHP
Всем салют.
Есть девелоперы кто знает и понимает PSR-15, а именно RequestHandlerInterface.
Те зачем и для чего он, какую роль должны играть иплементаторы RequestHandlerInterface, те это могут быть экшены, или контроллеры тоже могут играть роль хендлера с методом handle()?
Сразу скажу пост на Yii форуме читал, но до конца не понял что есть Handler, и какую роль он может/должен  играть?
Для примера вот есть допустим Laminas\HttpHandlerRunner\RequestHandlerRunner
Он принимает в __construct:
$runner = new RequestHandlerRunner(
   RequestHandlerInterface::class,
   EmitterStack::class,
   ServerRequestFactory::class,
   ServerRequestErrorResponseGenerator::class
);
$runner->run();
И вот например что ему должны передать первым аргументом? Appliacation::class с методом handle реализующий RequestHandlerInterface?
Или какой нибудь роутер Router::class с методом handle реализующий RequestHandlerInterface?
А может быть экшен MyAction::class, с методом handle реализующий RequestHandlerInterface?
И вообще какую роль должен играть допустим какой нибудь контроллер HomeController::class, с методом handle реализующий RequestHandlerInterface?
Буду рад если кто подскажет в какую сторону смотреть, а то по фреймворкам не понятно они не особо охотно любят psr и просто делают всякие bridge адаптеры под psr.
источник

SM

Sergey Milimko in PHP
PSR - говно
источник

i

invariance in PHP
камингаут
источник

AM

Artem Molotov in PHP
Vladyslav Serednyakov
Всем салют.
Есть девелоперы кто знает и понимает PSR-15, а именно RequestHandlerInterface.
Те зачем и для чего он, какую роль должны играть иплементаторы RequestHandlerInterface, те это могут быть экшены, или контроллеры тоже могут играть роль хендлера с методом handle()?
Сразу скажу пост на Yii форуме читал, но до конца не понял что есть Handler, и какую роль он может/должен  играть?
Для примера вот есть допустим Laminas\HttpHandlerRunner\RequestHandlerRunner
Он принимает в __construct:
$runner = new RequestHandlerRunner(
   RequestHandlerInterface::class,
   EmitterStack::class,
   ServerRequestFactory::class,
   ServerRequestErrorResponseGenerator::class
);
$runner->run();
И вот например что ему должны передать первым аргументом? Appliacation::class с методом handle реализующий RequestHandlerInterface?
Или какой нибудь роутер Router::class с методом handle реализующий RequestHandlerInterface?
А может быть экшен MyAction::class, с методом handle реализующий RequestHandlerInterface?
И вообще какую роль должен играть допустим какой нибудь контроллер HomeController::class, с методом handle реализующий RequestHandlerInterface?
Буду рад если кто подскажет в какую сторону смотреть, а то по фреймворкам не понятно они не особо охотно любят psr и просто делают всякие bridge адаптеры под psr.
Можешь считать, что екшен и есть контроллером. @handle() по сути нужен для обработки екшена
источник

ПГ

Павел Г. in PHP
Vladyslav Serednyakov
Всем салют.
Есть девелоперы кто знает и понимает PSR-15, а именно RequestHandlerInterface.
Те зачем и для чего он, какую роль должны играть иплементаторы RequestHandlerInterface, те это могут быть экшены, или контроллеры тоже могут играть роль хендлера с методом handle()?
Сразу скажу пост на Yii форуме читал, но до конца не понял что есть Handler, и какую роль он может/должен  играть?
Для примера вот есть допустим Laminas\HttpHandlerRunner\RequestHandlerRunner
Он принимает в __construct:
$runner = new RequestHandlerRunner(
   RequestHandlerInterface::class,
   EmitterStack::class,
   ServerRequestFactory::class,
   ServerRequestErrorResponseGenerator::class
);
$runner->run();
И вот например что ему должны передать первым аргументом? Appliacation::class с методом handle реализующий RequestHandlerInterface?
Или какой нибудь роутер Router::class с методом handle реализующий RequestHandlerInterface?
А может быть экшен MyAction::class, с методом handle реализующий RequestHandlerInterface?
И вообще какую роль должен играть допустим какой нибудь контроллер HomeController::class, с методом handle реализующий RequestHandlerInterface?
Буду рад если кто подскажет в какую сторону смотреть, а то по фреймворкам не понятно они не особо охотно любят psr и просто делают всякие bridge адаптеры под psr.
Если есть время посмотрите:
https://www.youtube.com/watch?v=w4iqxN0nfTs&list=PLE20id3DjfFnio1Sm7WFOThtfqDGQdJgU&ab_channel=%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9%D0%95%D0%BB%D0%B8%D1%81%D0%B5%D0%B5%D0%B2 в частоности про мидлвары и psr15, хотя сам урок про psr7.

Если кратко (но возможно ошибаюсь) есть PSR7 request response  но как превратить одно в другое? Тут и прилетает PSR15 который соединяет их. По большеей части этот handler и есть ядро, который поймет какой контроллер вызывать, что ему передать и прочее. Хотя за подбор контроллера может отвечать и мидлвар.
источник

i

invariance in PHP
Это кстати хорошо, что они интерфейс такой придумали
источник

AM

Artem Molotov in PHP
Vladyslav Serednyakov
Всем салют.
Есть девелоперы кто знает и понимает PSR-15, а именно RequestHandlerInterface.
Те зачем и для чего он, какую роль должны играть иплементаторы RequestHandlerInterface, те это могут быть экшены, или контроллеры тоже могут играть роль хендлера с методом handle()?
Сразу скажу пост на Yii форуме читал, но до конца не понял что есть Handler, и какую роль он может/должен  играть?
Для примера вот есть допустим Laminas\HttpHandlerRunner\RequestHandlerRunner
Он принимает в __construct:
$runner = new RequestHandlerRunner(
   RequestHandlerInterface::class,
   EmitterStack::class,
   ServerRequestFactory::class,
   ServerRequestErrorResponseGenerator::class
);
$runner->run();
И вот например что ему должны передать первым аргументом? Appliacation::class с методом handle реализующий RequestHandlerInterface?
Или какой нибудь роутер Router::class с методом handle реализующий RequestHandlerInterface?
А может быть экшен MyAction::class, с методом handle реализующий RequestHandlerInterface?
И вообще какую роль должен играть допустим какой нибудь контроллер HomeController::class, с методом handle реализующий RequestHandlerInterface?
Буду рад если кто подскажет в какую сторону смотреть, а то по фреймворкам не понятно они не особо охотно любят psr и просто делают всякие bridge адаптеры под psr.
RequestHandlerRunner нужен для запуска екшена. Первым аргументом передаётся инстанс RequestHandler. Вроде всё очевидно
источник

AM

Artem Molotov in PHP
Vladyslav Serednyakov
Всем салют.
Есть девелоперы кто знает и понимает PSR-15, а именно RequestHandlerInterface.
Те зачем и для чего он, какую роль должны играть иплементаторы RequestHandlerInterface, те это могут быть экшены, или контроллеры тоже могут играть роль хендлера с методом handle()?
Сразу скажу пост на Yii форуме читал, но до конца не понял что есть Handler, и какую роль он может/должен  играть?
Для примера вот есть допустим Laminas\HttpHandlerRunner\RequestHandlerRunner
Он принимает в __construct:
$runner = new RequestHandlerRunner(
   RequestHandlerInterface::class,
   EmitterStack::class,
   ServerRequestFactory::class,
   ServerRequestErrorResponseGenerator::class
);
$runner->run();
И вот например что ему должны передать первым аргументом? Appliacation::class с методом handle реализующий RequestHandlerInterface?
Или какой нибудь роутер Router::class с методом handle реализующий RequestHandlerInterface?
А может быть экшен MyAction::class, с методом handle реализующий RequestHandlerInterface?
И вообще какую роль должен играть допустим какой нибудь контроллер HomeController::class, с методом handle реализующий RequestHandlerInterface?
Буду рад если кто подскажет в какую сторону смотреть, а то по фреймворкам не понятно они не особо охотно любят psr и просто делают всякие bridge адаптеры под psr.
> А может быть экшен MyAction::class, с методом handle реализующий RequestHandlerInterface?

Да
источник

AM

Artem Molotov in PHP
Vladyslav Serednyakov
Всем салют.
Есть девелоперы кто знает и понимает PSR-15, а именно RequestHandlerInterface.
Те зачем и для чего он, какую роль должны играть иплементаторы RequestHandlerInterface, те это могут быть экшены, или контроллеры тоже могут играть роль хендлера с методом handle()?
Сразу скажу пост на Yii форуме читал, но до конца не понял что есть Handler, и какую роль он может/должен  играть?
Для примера вот есть допустим Laminas\HttpHandlerRunner\RequestHandlerRunner
Он принимает в __construct:
$runner = new RequestHandlerRunner(
   RequestHandlerInterface::class,
   EmitterStack::class,
   ServerRequestFactory::class,
   ServerRequestErrorResponseGenerator::class
);
$runner->run();
И вот например что ему должны передать первым аргументом? Appliacation::class с методом handle реализующий RequestHandlerInterface?
Или какой нибудь роутер Router::class с методом handle реализующий RequestHandlerInterface?
А может быть экшен MyAction::class, с методом handle реализующий RequestHandlerInterface?
И вообще какую роль должен играть допустим какой нибудь контроллер HomeController::class, с методом handle реализующий RequestHandlerInterface?
Буду рад если кто подскажет в какую сторону смотреть, а то по фреймворкам не понятно они не особо охотно любят psr и просто делают всякие bridge адаптеры под psr.
Считай, что у тебя каждый екшен в отдельном классе. К примеру, ShowHomePageHandler implements RequestHandlerInterface
источник

AM

Artem Molotov in PHP
Смотрю DBAL 3 и ощущение, что разработчики его пишут с отключённым автокомплитом или без IDE. Убрали из интерфейса нужные методы, запилили новые (в том же классе), но в интерфейс не добавили. И теперь автокомплит сломат и непонятно что с этим делать...
источник

VS

Vladyslav Serednyako... in PHP
Artem Molotov
RequestHandlerRunner нужен для запуска екшена. Первым аргументом передаётся инстанс RequestHandler. Вроде всё очевидно
А если я использую RequestHandlerRunner в index.php, нужно както передавать текущий экшн из роутера?
И как передать если роутер срабатывает после раннера?)
источник

i

invariance in PHP
надо еще для роутеров сделать интерфейс, да. Сейчас полная жопа с роутингом, большинство роутеров опенсорсных не умеют нормально интегрироваться в чет посложнее MVC
источник

i

invariance in PHP
куча статичных методов, синглтоны и т.п.
источник

i

invariance in PHP
глобальный стейт
источник

ПГ

Павел Г. in PHP
Vladyslav Serednyakov
А если я использую RequestHandlerRunner в index.php, нужно както передавать текущий экшн из роутера?
И как передать если роутер срабатывает после раннера?)
Роутер уже будет внутри, но где конкретно - тут уже как сделаете. Можно например чтобы один из мидлваров был как раз с роутером и заполняля attributes в request. Потом уже подготовленный Request прилетает в handler который вызывает нужный контроллер.
источник

AM

Artem Molotov in PHP
Vladyslav Serednyakov
А если я использую RequestHandlerRunner в index.php, нужно както передавать текущий экшн из роутера?
И как передать если роутер срабатывает после раннера?)
> И как передать если роутер срабатывает после раннера?

Должно быть наоборот, если кейс не специфичный. Т.е.  сначала роутер смотрит какой екшен нужно запустить, потом передаёт эту задачу раннеру и уже раннер запускает этот екшен.
источник

ПГ

Павел Г. in PHP
Artem Molotov
> И как передать если роутер срабатывает после раннера?

Должно быть наоборот, если кейс не специфичный. Т.е.  сначала роутер смотрит какой екшен нужно запустить, потом передаёт эту задачу раннеру и уже раннер запускает этот екшен.
Мне кажется у вас слишком много снаружи хэндлера оказывается :(
источник