Size: a a a

2020 February 07

А

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

DS

Dmitriy S in Yii Framework 3
Фактори
class AppRouterFactory
{
   public function __invoke(ContainerInterface $container)
   {
       $routes = [
           Route::get('/test', [SiteController::class, 'test2'])->name('test')
           ];

       $router = (new RouterFactory(new FastRouteFactory(), $routes))($container);
       $router->setUriPrefix('/admincp');
       return $router;
   }
}


Экшн
public function test2(RouterInterface $router, ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
   {
       $response = $this->responseFactory->createResponse();
       $response->getBody()->write($router->generate('test'));

       return $response;
   }

Заходим на http://localhost:8080/test
Результат: /admincp/test
источник

DS

Dmitriy S in Yii Framework 3
Для пущей убедительности можно вывести так
$response->getBody()->write($router->generate($router->getCurrentRoute()->getName()));
Результат будет такой же.
источник

DS

Dmitriy S in Yii Framework 3
И почему в SubFolder $prefix - это public property
источник

А

Алексей R in Yii Framework 3
Dmitriy S
И почему в SubFolder $prefix - это public property
Чтобы вручную задавать )
источник

DS

Dmitriy S in Yii Framework 3
Вроде была договоренность использовать сеттеры для этого. Ну и резонный вопрос, почему не задать в конструкторе опциональным параметром?
источник

А

Алексей R in Yii Framework 3
Dmitriy S
Вроде была договоренность использовать сеттеры для этого. Ну и резонный вопрос, почему не задать в конструкторе опциональным параметром?
сеттера нет, чтобы не было соблазна использовать. А в конструкторе нет по той же причине плюс автовайринг зависимостей
источник

DS

Dmitriy S in Yii Framework 3
Не было соблазна использовать что?
источник

А

Алексей R in Yii Framework 3
этот параметр )
источник

DS

Dmitriy S in Yii Framework 3
А как публичное свойство не будет соблазна? Хотя насчет cоблазна я вообще не понял.  Это свойсто для тестов было сделано, что ли?
источник

А

Алексей R in Yii Framework 3
задавать префикс вручную - так себе затея
для этого на сервере нужно поизгаляться
источник

А

Алексей R in Yii Framework 3
т.е. дело для извращенцев
источник

А

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

Д

Дмитрий in Yii Framework 3
Алексей R
сеттера нет, чтобы не было соблазна использовать. А в конструкторе нет по той же причине плюс автовайринг зависимостей
Метод нужен всё-таки.
источник

DS

Dmitriy S in Yii Framework 3
Алексей R
нормальному человеку это не надо )
Значит все же для тестов))
источник

DS

Dmitriy S in Yii Framework 3
Для нормальных людей можно сделать protected
источник

Д

Дмитрий in Yii Framework 3
Dmitriy S
Для нормальных людей можно сделать protected
А как тогда использовать его?
источник

DS

Dmitriy S in Yii Framework 3
Ненормальные люди умеют в наследование
источник

А

Алексей R in Yii Framework 3
и чтобы было два класса вместо одного?
источник

Д

Дмитрий in Yii Framework 3
Dmitriy S
Для нормальных людей можно сделать protected
Я про сам мидлвар. Он же будет совсем бесполезным
источник