А
Size: a a a
А
А
AM
DS
AM
AM
a
a
DS
a
А
А
ActionCaller
, который принимает любые данные от экшена.SmartStreamFactory
, которая создаёт стрим в зависимости от типа данных:StreamFactoryInterface
для типов строка/файл/ресурс, которые описаны в StreamFactoryInterface
;DataStream
для массивов/объектов;SmartStreamFactory
можно сделать конфигурируемым, но сейчас не об этом.SmartStreamFactory
чем-то вроде Injector
'а, то можно будет его удобно юзать везде, где надо завернуть данные в стрим.DataStream
, формата представления у данных ещё нет.setConverter
, где указывает класс конвертера и параметры конвертирования.$stream->setConverter(XMLConverter::class, ['version' => '1.0'])
RenderDataStream
. До тех пор DataStream
просто держит в себе сырые данные. При этом стрим не читабельный (при попытке чтения будет исключение).Route::get('archive/json', new ActionCaller(ArchiveController::class, 'index', $container))
->addMiddleware(new SetStreamConverter(JSONConverter::class)) // <== ТУТ
->name('blog/archive/index/json'),
SmartStreamFactory
и вешаем конвертер.Route::get('archive', new ActionCaller(ArchiveController::class, 'index', $container))
->addMiddleware(
new SetStreamConverter( // мидлварь, вешающая конвертер на стрим
MyWebViewConverter::class,
// Параметры для конвертера
[
'viewPath' => '@views/blog/archive',
'view' => 'index',
'layout' => '@views/layout/main.php',
]
)
)
->name('blog/archive/index'),
/blog/archive
, там будут кнопки для получения одних и тех же данных в JSON, XML, print_r. Сама страница уже конвертирована конвертером MyWebViewConverter
из примера вышеa
DS
ActionCaller
, который принимает любые данные от экшена.SmartStreamFactory
, которая создаёт стрим в зависимости от типа данных:StreamFactoryInterface
для типов строка/файл/ресурс, которые описаны в StreamFactoryInterface
;DataStream
для массивов/объектов;SmartStreamFactory
можно сделать конфигурируемым, но сейчас не об этом.SmartStreamFactory
чем-то вроде Injector
'а, то можно будет его удобно юзать везде, где надо завернуть данные в стрим.DataStream
, формата представления у данных ещё нет.setConverter
, где указывает класс конвертера и параметры конвертирования.$stream->setConverter(XMLConverter::class, ['version' => '1.0'])
RenderDataStream
. До тех пор DataStream
просто держит в себе сырые данные. При этом стрим не читабельный (при попытке чтения будет исключение).Route::get('archive/json', new ActionCaller(ArchiveController::class, 'index', $container))
->addMiddleware(new SetStreamConverter(JSONConverter::class)) // <== ТУТ
->name('blog/archive/index/json'),
SmartStreamFactory
и вешаем конвертер.Route::get('archive', new ActionCaller(ArchiveController::class, 'index', $container))
->addMiddleware(
new SetStreamConverter( // мидлварь, вешающая конвертер на стрим
MyWebViewConverter::class,
// Параметры для конвертера
[
'viewPath' => '@views/blog/archive',
'view' => 'index',
'layout' => '@views/layout/main.php',
]
)
)
->name('blog/archive/index'),
/blog/archive
, там будут кнопки для получения одних и тех же данных в JSON, XML, print_r. Сама страница уже конвертирована конвертером MyWebViewConverter
из примера вышеА
DS
А
DS
А
DS