За последние 24 часа нас посетили 37259 программистов и 7910 роботов. Сейчас ищут 1782 программиста ...

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

Тема в разделе "PHP для новичков", создана пользователем Вероломство, 28 июл 2023.

  1. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    626
    Симпатии:
    24
    Поколупал доки по 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;
     
    MouseZver нравится это.
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    ссылки
     
  3. miketomlin

    miketomlin Старожил

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

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

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    626
    Симпатии:
    24
    @MouseZver The DependencyInjection Component (Symfony Docs)
    --- Добавлено ---
    от меня в нём понимание того, что автор лепит горбатого :D
     
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    656
    Ему под конец надоело эту хню писать. Он поумничал напоследок и распрощался ;) Не воспринимай серьезно :D
     
  6. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    626
    Симпатии:
    24
    @miketomlin я тоже так уже думал, автор троллит
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    Я что-то ослеп и не вижу где это по ссылке.
     
  8. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    626
    Симпатии:
    24
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    А это где пишется ?
     
  10. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Ну вообще, и лара это "сТыздила" с симфони
     
  11. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    626
    Симпатии:
    24
    видимо там же, где и ссылка из #4 и там где описано в вопросе - последние строки документации
     
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    Реал зашквар. На 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уй
    --- Добавлено ---
    Слава Украине
     
    Вероломство нравится это.
  13. Aleksandr.B

    Aleksandr.B Активный пользователь

    С нами с:
    2 фев 2023
    Сообщения:
    159
    Симпатии:
    41
    Адрес:
    Барнаул
    Есть вероятность, что примеры кода для предыдущих версии.

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

    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. ;
     
    Вероломство нравится это.
  14. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    626
    Симпатии:
    24
    @MouseZver@Aleksandr.B похоже да, дока по сборке из компонентов не обновляется, хотя всё работает именно до этого момента, видимо поэтому и не обновляется, вроде как мелочь - можно разрулить, ок