Symfony FOSRestController 作为服务(依赖注入)
Symfony FOSRestController as a service (Dependency injection)
我正在尝试在我的控制器中使用依赖注入。我正在使用 FOSRestController。
我收到一个错误:
Bundle "app.person_rest_controller" does not exist or it is not
enabled. Maybe you forgot to add it in the registerBundles() method of
your AppKernel.php file? in
/var/www/html/src/AppBundle/Resources/config/routing.yml (which is
being imported from "/var/www/html/app/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
一个想法?
谢谢! =)
两个快速的事情,特别是因为你似乎有一条错误消息实际上可以帮助你:
- 您需要通过 composer 安装 FosRESTBundle
- 您需要启用它 AppKernel.php
这两个在 official Symfony documentation.
上都有解释
通常,您会在 /symfony/project/root/doc/app/AppKernel.php
下找到 AppKernel.php
我创建了解决方案,这是一个愚蠢的错误:
服务控制器名称前没有@。
变化:
service_person:
type: rest
prefix: /v1
resource: "@app.person_rest_controller"
name_prefix: api_1_ # naming collision
对此:
service_person:
type: rest
prefix: /v1
resource: "app.person_rest_controller"
name_prefix: api_1_ # naming collision
我正在尝试在我的控制器中使用依赖注入。我正在使用 FOSRestController。
我收到一个错误:
Bundle "app.person_rest_controller" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() method of your AppKernel.php file? in /var/www/html/src/AppBundle/Resources/config/routing.yml (which is being imported from "/var/www/html/app/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
一个想法?
谢谢! =)
两个快速的事情,特别是因为你似乎有一条错误消息实际上可以帮助你:
- 您需要通过 composer 安装 FosRESTBundle
- 您需要启用它 AppKernel.php
这两个在 official Symfony documentation.
上都有解释
通常,您会在 /symfony/project/root/doc/app/AppKernel.php
我创建了解决方案,这是一个愚蠢的错误:
服务控制器名称前没有@。
变化:
service_person:
type: rest
prefix: /v1
resource: "@app.person_rest_controller"
name_prefix: api_1_ # naming collision
对此:
service_person:
type: rest
prefix: /v1
resource: "app.person_rest_controller"
name_prefix: api_1_ # naming collision