私は新しいバンドルを作成しましたが、今はいくつかのサービスをロードできるようにしたいと思います。 どうすればいいですか?私はsymfony:バンドルの中からサービスを作る方法
ありがとう...ドキュメントに有用な情報を見つけることができません
...
私は新しいバンドルを作成しましたが、今はいくつかのサービスをロードできるようにしたいと思います。 どうすればいいですか?私はsymfony:バンドルの中からサービスを作る方法
ありがとう...ドキュメントに有用な情報を見つけることができません
...
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>
。
あなたがより明確にすることはできますか?
一部のサービスを呼び出す必要がありましたか?
サービスがservices.ymlで宣言されている場合は、すべてのバンドルでアクセスできます。唯一の要件は、サービス名が一意である必要があるということです。それだ
これは答えではありません、これはコメントです –
特定のバンドルの '' Resources/config''内に '' services.yml''を作成しないのはなぜですか? – eRIZ
あなたが提案したようにファイルを作成してもうまくいかないようです:「あなたは存在しないサービスを要求しました」service.name "というメッセージが表示されます。 – Aerendir