Dmitrij
Забей, посижу над докой, может примеры ещё посмотрю . Пока вижу, что дока не соответствует примерам приведённым в ней.
Dmitrij
ну вообщем никчему не привела документация
Dmitrij
Dmitrij
беру как минимум эту часть
Dmitrij
Dmitrij
хотя если через конструктор ТайпХинтю то всё ок
Dmitrij
в чем долбанная магия ?
Anatoliy
Покажи регистрацию этого сервиса в services.yml
Dmitrij
иду четко по доке
Dmitrij
https://symfony.com.ua/doc/current/service_container.html
Anatoliy
сек
Dmitrij
я как бы своего ничего не выдумываю, просто беру с доки и набираю код
$logger = $this->container->get('logger');
dd($logger);
Dmitrij
и получаю ошибку
Anatoliy
https://symfony.com/doc/current/service_container.html
Пользуйся лучше оригинальной докой)
Anatoliy
у тебя logger - это алиас на логер интерфейс
Anatoliy
Если попробуешь у себя вызвать
$doctrineRegistry = $this->container->get('doctrine');
вместо логера
все будет ок, и можно пользоваться этим сервисом
Dmitrij
Dmitrij
а почему тогда, я делаю
вот как по доке дальше:
Dmitrij
Dmitrij
и той доке так же есть
Dmitrij
и у меня он так же не работает?
Dmitrij
хотя я обращаюсь к ID
Dmitrij
site_update_manager.superadmin
Dmitrij
ну то есть, ниодно обращение к ID, которое я создаю не работает
Dmitrij
их нужно где то дополнительно регистрировать ?
Anatoliy
попробуй поставить autowire: true
Anatoliy
точнее вообще из этого блока удали его
Anatoliy
он по дефолту тру
Vadim
Это старая дока. Теперь id сервиса — это FQCN сервиса. Плюс из контейнера ты их достать не можешь, так как все по умолчанию установлено в public: false. Это сделано специально, чтобы ты инжектил сервисы, а не контейнер.
Dmitrij
Привет всем. Мужики, как то можно в контейнер передать массив? В доке нашел, что можно описать в Параметрах массив, но как его потом прокинуть в сервис непонятно, пишу так:
parameters:
test_setting:
test_token: '%token%'
services:
App\TestCon:
public: true
arguments:
$config: '%test_setting%'
и получаю ошибку, что
argument "$config" of method "__construct()" is type-hinted "array", you should configure its value explicitly.
Александр
https://symfony.com/doc/current/components/yaml/yaml_format.html
Dmitrij
кто то может дать ссылку на гит, как вы работаете с контейнерами? или никто особо не заморачивается с ними ?
Vadim
Да боже, иди дебажь
Vadim
Сколько можно, там забанили, сюда пришёл
Dmitrij
где забанили?
Dmitrij
меня не банили пока еще нигде
Dmitrij
в гугле висят эти же вопросы на стековерфлоу, и ответа не них нет
Vadim
Если тебе неинтересно решить проблему самому, программирование не твоё.
Dmitrij
Dmitrij
подсказал бы по теме, был бы вообще красавчик
Vadim
Ты в этой теме не шаришь, чтобы тебе подсказывать. Сто раз кидали доку и ты до сих пор не умудрился решить свою проблему. Там все очень просто, в доке предельно ясно написано.
Vadim
Ты не читаешь доку, а бежишь сразу к примерам, чтобы скопировать. Такой подход в ларке, может быть, работал, тут нет
Dmitrij
ну я пока сделал вывод, что никто не упарывался в контейнер симфы, ибо в доке все поверхностно и с ошибками описано. Я свою проблему решил от части, но мне не нравится такое решение, потому пытаюсь сделать хорошо. А вопросы задаю такого плана на которые на нашел вменяемых ответов ни в доке ни в гугле.
Александр
еще раз
Александр
https://symfony.com/doc/current/components/yaml/yaml_format.html#collections
Александр
и посмотри как у тебя параметры оформлены
Dmitrij
и посмотри как у тебя параметры оформлены
смотри, когда я в контроллере обращаюсь к параметрам:
$this->getParameter('test_setting');
то я получаю нужный результат, массив который задал. Что у меня не так с оформлением, что его сервис не подхватывает ?
Dmitrij
Александр
покажи конструктор
Александр
потому чтоя воспроизвел и все норм вывелось
Dmitrij
Dmitrij
трабл возникает именно с массивом
Dmitrij
ну то есть, если не на тестовых данных, то у меня такая картина:
Dmitrij
Dmitrij
Dmitrij
и конструктор, который выше скинул
Dmitrij
и когда пытаюсь автовайрить App\Infrastructure\BotMan\BotMan, то получаю ошибку
Dmitrij
Cannot resolve argument $botman of "App\Controller\TestController::index()": Cannot autowire service "App\Infrastructure\Botman\Botman": argument "$telegramConfig" of method "__construct()" is type-hinted "array", you should configure its value explicitly.
Vadim
Ты знаешь, зачем нужен public: true?
Dmitrij
Alexander
Разве $container->get() где то еще используется, думал после 4-ки отошел в мир иной этот метод с практики.
Alexander
Парень вроде 4-5 использует. О старых версиях понятное дело)
Кирилл
ды лан, вон недавно global $container даже было)
Гречушников
у меня то
Гречушников
)
Гречушников
у меня нет автовайринга
Кирилл
дык в описании сервиса можно написать
arguments:
- "@service_container"
Кирилл
при чем тут автовайринг
Dmitrij
неужели никто не заморачивался с прокидыванием массива?
Кирилл
да блин работает прокидывание массива. прокидывание всего работает.
Maks
https://symfonycasts.com/screencast/symfony-fundamentals/create-service
Dmitrij