私は自分のコントローラに依存性注入を使用しようとしています。私はFOSRestControllerを使用しています。symfonyのFOSRestController(依存性の注入)
私はエラーを受け取っ:
バンドル "app.person_rest_controllerは" 存在しないか、それが有効になって ではありません。たぶん、あなたはあなたの AppKernel.phpファイルのregisterBundles()メソッドでそれを追加するのを忘れ? ( "/var/www/html/app/config/routing.yml" からインポートさ ある) /var/www/html/src/AppBundle/Resources/config/routing.ymlいます。
私のコントローラは、次のようになります。
class PersonRestController extends FOSRestController
{
private $entityManager;
private $container;
private $sendNewContactRabbitMQProducer;
public function __construct(EntityManager $entityManager, $container, Producer $rabbitMQProducer)
{
$this->entityManager = $entityManager;
$this->container = $container;
$this->sendNewContactRabbitMQProducer = $rabbitMQProducer;
}
public function postPersonAction(ParamFetcher $paramFetcher)
{
...
}
私のrouting.yml:
service_person:
type: rest
prefix: /v1
resource: "@app.person_rest_controller"
name_prefix: api_1_ # naming collision
そして、私のservices.yml:私はこれで私の仕事の基礎を
services:
app.person_rest_controller:
class: AppBundle\Controller\PersonRestController
arguments:
- "@doctrine.orm.entity_manager"
- "@service_container"
- "@person.rabbitmq.producer.send_new_contact"
person.rabbitmq.producer.send_new_contact:
class: AppBundle\Service\SendNewContactRabbitMQProducer
arguments: []
calls:
- [setRabbitMQProducer, ["@old_sound_rabbit_mq.send_person_id_from_hotelpro4u_producer"]]
- [setLogger, ['@logger']]
: https://github.com/FriendsOfSymfony/FOSRestBundle/issues/990
アイデア?
ありがとうございました!あなたが実際にあなたを助け、エラーメッセージを持っているように見える、特に以来=)
注:あなたが本当に必要とし、使用したいサービスに容器全体を注入していないが、ちょうどサービスなど決してこれに
。それはあなたのテスト容易性などを高めます。多くの依存関係に注入する必要がある場合、サービスは大きくなります。 – KhorneHoly
そのことをありがとう、私はそれを検討します。 – Xero