コントローラで-> findTaggedServiceIdsをどのように使用しますか?

user2559108

ドキュメントは次のようにします:

public function process(ContainerBuilder $container)
{
    $taggedServices = $container->findTaggedServiceIds(
        'acme_mailer.transport'
    );
}

しかし、コントローラーでこれを実行しようとすると、メソッドが見つかりません。

public function handlersAction() {
    $handlers = $this->container->findTaggedServiceIds(
        'quickship.handler'
    );
    return View::create($handlers);
}

コントローラでContainerBuilderにアクセスするにはどうすればよいですか?

イリーズスクール

findTaggedServiceIds方法であるContainerBuilderないのコンテナ

これがあなたが望むものを達成するための解決策(唯一のものではありません)です。

コントローラをサービスとして登録します。たとえば、id constroller.serviceを使用して、メソッドを追加します。

public function setQuickshipHandlers($handlers){ //Do something with the services IDs }

次に、コンパイラパス記述して、タグ付けされたサービスを取得し、コントローラ/サービスにそれらをフィードします

YourBundle / DependencyInjection / Compiler /HandlersPass.phpのようなものである必要があります

<?php

namespace YourBundle\DependencyInjection\Compiler;

use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;

class HandlersPass implements CompilerPassInterface
{

    public function process(ContainerBuilder $container)
    {
        $controllerServiceDefinition = $container->findDefinition('controller.service');

        $handlers = $container->findTaggedServiceIds('quickship.handler');

        $controllerServiceDefinition->addMethodCall('setQuickshipHandlers',array_keys($handlers);            
    }
}

最後に、このコンパイラをバンドルビルドメソッドに追加します。YourBundle /YourBundle.phpのようなものである必要があります

<?php

namespace YourBundle;

use YourBundle\DependencyInjection\Compiler\HandlersPass;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle;

class YourBundle extends Bundle
{
    public function build(ContainerBuilder $container)
    {
        parent::build($container);
        $container->addCompilerPass(new HandlersPass());
    }

}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

コントローラーでLaravel言語翻訳を定数としてどのように使用しますか?

分類Dev

CodeIgniterで複数のコントローラーをどのように使用しますか?

分類Dev

URDFでコントローラーをどのように使用することになっていますか

分類Dev

codeigniterコントローラーでjsonヘッダーをどのように定義しますか?

分類Dev

CodeigniterはコントローラーでajaxPOSTデータをどのように受信しますか

分類Dev

Shopware 6コントローラーでどのようにメールを送信しますか?

分類Dev

位置のサイズに依存するコントロールでRelativeLayoutをどのように使用しますか?

分類Dev

ASP NetCoreでWebAPIコントローラーをどのように承認しますか

分類Dev

Laravel 5.4 - 静的配列を使用してコントローラーにデータを保存できません。どのように対処しますか?

分類Dev

コンポーネントTStyleBookを使用する場合、ボタンのIconTintColorをプログラムでどのように変更しますか?

分類Dev

USBコントローラーが/ devのどこにあるかをどのように把握しますか?

分類Dev

どのように私はautowired ConversionServiceを使用してコントローラの@WebMvcTestを使用することができますか?

分類Dev

このAngularFactoryをコントローラーで使用するにはどうすればよいですか?

分類Dev

anglejsのコントローラー内でPromiseを使用するにはどうすればよいですか?

分類Dev

OSXを搭載したSWIFTでCocoaスライダーコントロールをどのように使用しますか

分類Dev

`[(ngModel)]` がコントローラーから値を取得しません。どのように修正しますか?

分類Dev

URLのパラメーターを使用してコントローラーメソッドで使用するにはどうすればよいですか?

分類Dev

コードでPyTorchPackedSequenceをどのように使用しますか?

分類Dev

多次元配列をビューからコントローラーにどのように渡しますか?

分類Dev

コントローラの外部でEFDbConextを使用するにはどうすればよいですか?

分類Dev

ASP.NET WebApiを使用して、ルートでコントローラーのセットを除外するにはどうすればよいですか?

分類Dev

SATAコントローラーに障害が発生しているかどうかをどのように判断できますか?

分類Dev

render()-どのようにコントローラーをロードしますか?

分類Dev

レンダーを使用した後、コントローラーの実行を停止するにはどうすればよいですか?(Ruby on Railsの使用)

分類Dev

プログラムでラドンをどのように使用しますか

分類Dev

Spring Securityはどのようにプリンシパルをコントローラーに注入しますか?

分類Dev

ajaxを使用して価格スライダーの値をコントローラーに渡すにはどうすればよいですか?

分類Dev

Java EE 8 MVC:コントローラーでどのように起動しますか?

分類Dev

NumberFormatExceptionを取得せずに、JavaFXで別のコントローラーから送信した整数を使用するにはどうすればよいですか?

Related 関連記事

  1. 1

    コントローラーでLaravel言語翻訳を定数としてどのように使用しますか?

  2. 2

    CodeIgniterで複数のコントローラーをどのように使用しますか?

  3. 3

    URDFでコントローラーをどのように使用することになっていますか

  4. 4

    codeigniterコントローラーでjsonヘッダーをどのように定義しますか?

  5. 5

    CodeigniterはコントローラーでajaxPOSTデータをどのように受信しますか

  6. 6

    Shopware 6コントローラーでどのようにメールを送信しますか?

  7. 7

    位置のサイズに依存するコントロールでRelativeLayoutをどのように使用しますか?

  8. 8

    ASP NetCoreでWebAPIコントローラーをどのように承認しますか

  9. 9

    Laravel 5.4 - 静的配列を使用してコントローラーにデータを保存できません。どのように対処しますか?

  10. 10

    コンポーネントTStyleBookを使用する場合、ボタンのIconTintColorをプログラムでどのように変更しますか?

  11. 11

    USBコントローラーが/ devのどこにあるかをどのように把握しますか?

  12. 12

    どのように私はautowired ConversionServiceを使用してコントローラの@WebMvcTestを使用することができますか?

  13. 13

    このAngularFactoryをコントローラーで使用するにはどうすればよいですか?

  14. 14

    anglejsのコントローラー内でPromiseを使用するにはどうすればよいですか?

  15. 15

    OSXを搭載したSWIFTでCocoaスライダーコントロールをどのように使用しますか

  16. 16

    `[(ngModel)]` がコントローラーから値を取得しません。どのように修正しますか?

  17. 17

    URLのパラメーターを使用してコントローラーメソッドで使用するにはどうすればよいですか?

  18. 18

    コードでPyTorchPackedSequenceをどのように使用しますか?

  19. 19

    多次元配列をビューからコントローラーにどのように渡しますか?

  20. 20

    コントローラの外部でEFDbConextを使用するにはどうすればよいですか?

  21. 21

    ASP.NET WebApiを使用して、ルートでコントローラーのセットを除外するにはどうすればよいですか?

  22. 22

    SATAコントローラーに障害が発生しているかどうかをどのように判断できますか?

  23. 23

    render()-どのようにコントローラーをロードしますか?

  24. 24

    レンダーを使用した後、コントローラーの実行を停止するにはどうすればよいですか?(Ruby on Railsの使用)

  25. 25

    プログラムでラドンをどのように使用しますか

  26. 26

    Spring Securityはどのようにプリンシパルをコントローラーに注入しますか?

  27. 27

    ajaxを使用して価格スライダーの値をコントローラーに渡すにはどうすればよいですか?

  28. 28

    Java EE 8 MVC:コントローラーでどのように起動しますか?

  29. 29

    NumberFormatExceptionを取得せずに、JavaFXで別のコントローラーから送信した整数を使用するにはどうすればよいですか?

ホットタグ

アーカイブ