2016-04-07 9 views
-1

私は新しいバンドルを作成しましたが、今はいくつかのサービスをロードできるようにしたいと思います。 どうすればいいですか?私はsymfony:バンドルの中からサービスを作る方法

ありがとう...ドキュメントに有用な情報を見つけることができません

...

+0

特定のバンドルの '' Resources/config''内に '' services.yml''を作成しないのはなぜですか? – eRIZ

+0

あなたが提案したようにファイルを作成してもうまくいかないようです:「あなたは存在しないサービスを要求しました」service.name "というメッセージが表示されます。 – Aerendir

答えて

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> 

0

あなたがより明確にすることはできますか?

一部のサービスを呼び出す必要がありましたか?

サービスがservices.ymlで宣言されている場合は、すべてのバンドルでアクセスできます。唯一の要件は、サービス名が一意である必要があるということです。それだ

+0

これは答えではありません、これはコメントです –

関連する問題