2017-09-27 4 views
0

作成したサービスをタイプヒントにできるように設定するにはどうすればよいですか?私は、この私のクラスにSymfony3タイプヒント作成されたサービス

Tester:  
     class: AppBundle\Services\Tester 
     public: true 

追加これをservices.ymlする

...

追加し、すべてのサービスコンテナのドキュメントで見て、symfonyのドキュメントと私は作品をしようとしています何を行うには何もしています

use AppBundle\Services\Tester; 

"テスター$テスト"のヒントを試してエラーが発生しました。間違っている...

+0

どのようなエラーが表示されますか? –

+0

メーラを追加しようとすると、クラスが存在しないことがわかります.... – dlhines

+0

実際には正確な出力は...コードは少し異なりますがエラーは同じです... タイプエラー:AppBundle \ Services \ Tester :: onTest()に渡された引数1はSwiftMailerのインスタンスでなければならず、何も指定されていない/home/xXxX/symfony-test-sites/xXxX/src/AppBundle/Controller/TestLoggerController.php on line 30 – dlhines

答えて

0

この場合、Testerは、サービスであるクラス名ではなく、サービス名です。

あなたがその場所でクラスを持って、そしてあなたも、あなたがこのようにそれを定義することができ、$container->get('\AppBundle\Services\Tester')または->get(Tester::class)で使用するために(それが公共にしたい場合。

AppBundle\Services\Tester: 
    public: true 

あなただけしようとしている場合型ヒントとして使用するには、public:trueは必要なく、クラスが別の場所(おそらくは同じファイルの上にある)にインポートされている場合は、行が必要な場合でも、

テスト環境ではget()にする必要があるのであればservices_tesy.ymlのサービスエイリアスのみを作成する価値があります。

# available as ->get('test_Tester') in a test 
test_Tester: 
    class: AppBundle\Services\Tester: 
    public: true 
+0

私はあなたが話していることを見ています。私は正直にそれを忘れていた。私はその時を過ぎ去った。私は今よく理解し、それを働かせる方法を見つけました。ありがとう! – dlhines

0

私は必要なものを見つけました。私はEclipseのyamlエディタに問題がありました。それはタブの混乱を作り出していて、他の分野でも私に問題を与え続けていました。私はYEditのインストールを終了し、すべてがうまくいくように見えました。

ありがとうございました!

関連する問題