Юра
Можно попробовать так
Юра
test_service: parent: service_kotorij_nato_sdelat_autowirable autowire: true
Юра
хотя не
Юра
или да )
Юра
короче надо пробовать
Юра
я просто не зню как test_service в таком случае ты ж не затайпхинтишь
Юра
короче правильный вариант это компайлер пас
Юра
получаешь нужный сервис, меняешь ему autowired на true и всё
Сергей
а при регистрации сразу нельзя это сделать?
Юра
при регистрации сервиса внутри другого бандла ?
Сергей
ну так это его бандлы) он внутри бандла1 ресгитриует сервис, почему бы там сразу не поставить autowire?
Юра
он спрашивает как мне автовайрить сервис из другого бандла
Юра
Вообщем есть такой файл
Юра
src/Kernel.php
Юра
нем есть метод /** * You can modify the container here before it is dumped to PHP code. */ public function process(ContainerBuilder $container) { }
Юра
наверное можно тут получить нужный сервис и сделать ему autowired = true
Юра
чтобы не писать компилер пас
Юра
$definition = $container->getDefinition('some_service'); $definition->setAutowired(true);
Сергей
но у него вроде не так, есть App, Bundle1, Bundle2 и в Bundle1 есть такое bundle1.service: arg: ['@bundle2.service'] вот хотят приветси к такому виду, как я понял bundle1.service: ~ Тут данных не хватает, где именно service.yaml, гдде services.xml, а еще там Extension.. по мне, просто в bundle1/services.xml надо прописать autowire и все. но не понимаю чем это мещает)
Сергей
но тут уже все варианты рассмотрены) заработает
Юра
Да в любом случае )
Юра
Вот бы в доке симфы было написано в каком порядке все файлы обрабатываются и где что можно менять
Сергей
а где то есть.. много раз натыкался на проблемы services yaml + import + авторегистрация по всем папкам) и было написало, что это не импорт, а он их обрабатывает как разные файлы, поэтому может воззникнуть путаница ( типа в 1 файле сработал авторегисрация, а в импорте ты попытался опять его зарегистрировать. ну и все)
Юра
Поняв контейнер обретешь силу невиданную ты
Юра
Способов регистрации сервисов наплодили, теперь разберись во всем этом зоопарке
Anonymous
test_service: parent: service_kotorij_nato_sdelat_autowirable autowire: true
Ну у тебя и нейминг дядя Так и сделал я, он не реагирует на эти указания
Anonymous
Вот кстати, а есть ли дока как вместо xml использовать yaml для конфига ВНУТРИ бандла? А то чет нигде не встречал, но хочется чтоб все в одном формате было
Anonymous
Или конечно вообще внутренние конфиги в .php, как недавно сказали разрабы симфы
Anonymous
получается если подытожить, то три варианта это 1)в services.xml внутри бандла 1 прописать автовайр 2)в Extension прописать compilerPass и сделать автовайр 3)в Kernel сделать автовайр
Anonymous
третий не подходит, потому что внутри App\
Anonymous
значет первые два надо копать
Anonymous
спасибос
Юра
Почему третий не подходит
Anonymous
потому что изменения надо на стороне бандла делать
Anonymous
иначе смысла нет дергаться
Anonymous
типа, суть в том чтобы поставить бандл и все встанет настройками автоматически, без модификаций кернела или еще чего
Anonymous
так Extension внутри бандла...
Anonymous
А где...
Anonymous
Он же в DependencyInjection
Alexey Mishurovskiy
Alexey Mishurovskiy
Базовая настройка messenger и Amqp transport чтобы рассовывал по разным очередям. возможно есть какой то оверхэд но заработало.
Alexey Mishurovskiy
Отправка (продюсер) выгляди так: /** * @Route("/publish", name="test_publish") */ public function publish(MessageBusInterface $bus) { $bus->dispatch(new LeadProcess(59979), [ new AmqpStamp('lead_process') ]); }
Alexey Mishurovskiy
воркерами еще не занимался
Сергей
супер👍
Anonymous
так шо, кто-нибудь видел мб доку где объяснено как использовать .yml вместо xml для конфигурации бандлов?
Anonymous
а то нашел я вот бандл где такое есть
Anonymous
но естессно ни инфы ничего
Сергей
да ладно тебе) другой лоадер и все
Anonymous
да ладно тебе) другой лоадер и все
а сам yaml то как прописывать
Anonymous
в xml хоть понятно как там писать сервисы аргументы и тд
Anonymous
мне это интересно, а про то что лоадер эт понятно
Anonymous
Так вы сами в ямле писали)
таки нет внешний конфиг в .yaml это тот, что со значениями переменных для бандла а внутренний конфиг у меня в xml, и там как раз определения сервисов, контроллеров, все вот это вот
Сергей
Эээ,синтаксис же такой же, какие различия
Anonymous
Блин, есть пример конфига?
Anonymous
Мне сложно понять что там "такой же синтаксис"
Юра
config/services.yaml
Anonymous
Конфиг бандла *
Юра
В доке симфони всегда есть примеры на xml, yml, php
Юра
что такое конфиг бандла
Anonymous
Anonymous
https://symfony.com/doc/current/bundles/configuration.html
Юра
Да нету
Юра
Заменяешь XmlFileLoader на YamlFileLoader
Юра
файл с xml на yml
Anonymous
Ага, а все остальное че как
Anonymous
Теги <container/> и прочее
Юра
https://symfony.com/doc/current/components/dependency_injection.html
Юра
внизу есть примеры
Юра
И опять возвращаемся к теме что дока в симфе такая себе на самом деле
Юра
Вроде и расписано подробно но найти не всегда легко
Anonymous
👀
Anonymous
Океу
Anonymous
Вот чета нифига
Anonymous
Все перебором приходится
Anonymous
вот есть пример: services: _defaults: autowire: true autoconfigure: true Portiny\RabbitMQ\Command\ConsumeCommand: ~ Portiny\RabbitMQ\Command\DeclareCommand: ~ Portiny\RabbitMQ\Producer\Producer: ~ Portiny\RabbitMQ\BunnyManager: public: true arguments: - '%portiny.rabbitmq.connection%' - '%portiny.rabbitmq.aliases%' - !tagged portiny.rabbitmq.consumer - !tagged portiny.rabbitmq.exchange - !tagged portiny.rabbitmq.queue