我正在使用Symfony 3.3中的服务参数,但是一直收到错误提示。
错误信息
[Symfony\Component\DependencyInjection\Exception\AutowiringFailedException] 无法自动装配服务“AppBundle\Service\ApiInterface”:方法“__construct()”的参数“$api_endpoint”必须具有类型提示或显式给定值。
config.yml
services:
app.security.login_form_authenticator:
class: AppBundle\Security\LoginFormAuthenticator
autowire: true
arguments: ['@doctrine.orm.entity_manager']
app.service.api_interface:
class: AppBundle\Service\ApiInterface
arguments:
$api_endpoint: "%endpoint test%"
_defaults:
autowire: true
autoconfigure: true
public: false
AppBundle\:
resource: '../../src/AppBundle/*'
exclude: '../../src/AppBundle/{Entity,Repository,Tests}'
AppBundle\Controller\:
resource: '../../src/AppBundle/Controller'
public: true
tags: ['controller.service_arguments']
ApiInterface.php
use Unirest;
class ApiInterface
{
private $api_endpoint;
public function __construct(string $api_endpoint)
{
$this->timeout = 1;
echo 'form apiinterface construct: ' . $api_endpoint;
}
Any help appreciated feel like I am going round in circles in what should be a simple job!
bin/console lint:yaml app
(或其他文件路径,如src/)。如果你正在自动编写代码,你可能更喜欢通过类名调用服务,而不是使用'app.service.api_interface'别名。 - Alister Bulmanapp.service.api_interface
是正确的,但不是AppBundle\Service\ApiInterface
。 - Fabien Salles