Как засунуть роуты в контейнер Symfony?

Поколупал доки по Symfony, а именно доку по сборке своего фреймворка на основе его компонентов, ВСЁ понятно и всё работает, но чёрт меня дёрнул прочитать последние строки документации)))

Там автор предлагает роуты засунуть в контейнер:

PHP:
  1. //$routes = include __DIR__ . ‘/../src/app.php’;
  2. $container = include __DIR__ . ‘/../src/container.php’;
  3. $container->setParameter(‘routes’, include __DIR__ . ‘/../src/app.php’); // это предлагается в документации
  4.  
  5. $request = Request::createFromGlobals();
  6.  
  7. $response = $container->get(‘framework’)->handle($request);
  8.  
  9. $response->send();

но дело в том что подключаемый файл — это объект :) а метод контейнера setParameter принимает
array|bool|string|int|float|\UnitEnum|null

Ну и зачем автор в официальной документации предлагает помещать в контейнер объект методом, который этого не позволяет делать?
— Добавлено —
файл app.php (по официальной документации) :)

PHP:
  1. $routes = new RouteCollection();
  2.  
  3. $routes->add(‘leap_year’, new Route(‘/is_leap_year/{year}’, [
  4.     ‘year’ => null,
  5.     ‘_controller’ => ‘\Calendar\Controller\LeapYearController::index’,
  6. ]));
  7.  
  8. return $routes;
 

ссылки

 

Ссылку легко найти, но они сильно топят за Украину, поэтому выкладывать не буду.

@Вероломство, и что в этом фреймворке от тебя, раз ты даже это сТыздил с сайта Симфони? :D

 

@MouseZver The DependencyInjection Component (Symfony Docs)
— Добавлено —

от меня в нём понимание того, что автор лепит горбатого :D

 

Ему под конец надоело эту хню писать. Он поумничал напоследок и распрощался ;) Не воспринимай серьезно :D

 

@miketomlin я тоже так уже думал, автор троллит

 

Я что-то ослеп и не вижу где это по ссылке.

 

А это где пишется ?

 

Ну вообще, и лара это «сТыздила» с симфони

 

видимо там же, где и ссылка из #4 и там где описано в вопросе — последние строки документации

 

Реал зашквар. На xуй его и в костер с помидорами пидора гнущего всё под себя.

Ищу где эта хрень…

dependency_injection.rst

Screenshot 2023-07-31 at 18-56-54 The DependencyInjection Component (Symfony Docs).png

Думал сначала про кастомный Container из его простой поделки.
Проверил его и нет, не имеет отношения.

Screenshot 2023-07-31 at 18-58-51 The DependencyInjection Component (Symfony Docs).png

пиздую чекать файлик app.
Опа return type Symfony\Component\Routing\RouteCollection

Screenshot 2023-07-31 at 19-00-35 The Routing Component (Symfony Docs).png

Идем смотреть сам контейнер…

Screenshot 2023-07-31 at 18-59-10 The DependencyInjection Component (Symfony Docs).png

А он ContainerBuilder наследует Container, где setParameter говорит иди наxуй
— Добавлено —

Слава Украине

 

Есть вероятность, что примеры кода для предыдущих версии.

Думаю, что поместив роуты в контейнер как сервис для данного «фреймворка» ничего не поменяется.

PHP:
  1. $container->set(‘routes’, include __DIR__.‘/../src/app.php’);
  2. $container->register(‘matcher’, UrlMatcher::class)
  3. ->setArguments([new Reference(‘routes’), new Reference(‘context’)])
  4. ;
 

@MouseZver@Aleksandr.B похоже да, дока по сборке из компонентов не обновляется, хотя всё работает именно до этого момента, видимо поэтому и не обновляется, вроде как мелочь — можно разрулить, ок

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *