Я думаю, что мы как бы забрели в эту страну, но, может быть, это тот пример, о котором вы просили.
# portal/src/Symfony
# could have been portal/src/Portal/Common/Infrastructure/Symfony
# but I got lazy
namespace Portal\Common\Infrastructure\Symfony;
use Portal\Common\Infrastructure\Symfony\DependencyInjection\AppContextExtension;
use Symfony\Component\HttpKernel\Bundle\Bundle;
# I suppose SymfonyBundle might be a better name
class PortalBundle extends Bundle
{
public function getContainerExtension()
{
return new AppContextExtension();
}
}
Расширение
namespace Portal\Common\Infrastructure\Symfony\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
class AppContextExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
dump('it work');die;
}
}
config / bundles.php
Portal\Common\Infrastructure\Symfony\PortalBundle::class => ['all' => true],
composer.json
"autoload": {
"psr-4": {
"App\\": "src/",
"Portal\\Common\\Infrastructure\\Symfony\\": "portal/src/Symfony/"
}
},
Все это работает, как и ожидалось, но ваши комментарии об autowire заставляют меня подозревать, что вы пытаетесь сделать что-то еще полностью.Autowire, как правило, для приложений, определенных услуг.Вы не будете автоматически связывать пакет.
Наслаждайтесь