我已经创建了一个新的捆绑包,现在我想让它能够加载一些服务。 我怎么能这样做?
我在文档中找不到有用的信息......
谢谢...
答案 0 :(得分:3)
src\MyApp\Bundle\AcmeBundle\DependencyInjection\MyAppAcmeExtension.php
<?php
namespace MyApp\Bundle\AcmeBundle\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\Config\FileLocator;
class MyAppAcmeExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.xml');
}
}
src/MyApp/Bundle/AcmeBundle/Resources/config/services.xml
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services
http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="forum.post.voter" class="MyApp\Bundle\AcmeBundle\Service\ServiceClass">
<argument type="service" id="security.context"/>
<argument type="service" id="forum.repository.post_like"/>
</service>
</services>
</container>
就是这样。
答案 1 :(得分:0)
你能更明确吗?
在哪种情况下你需要打电话给某些服务吗?
如果您的服务在services.yml中声明,您可以在所有捆绑包中访问它们。唯一的要求是服务名称必须是唯一的。