我正在尝试迁移到symfony 3.3并使用新功能autowire
/autoconfigure
服务:
所以services.yml我有:
services:
_defaults:
autowire: true
autoconfigure: true
public: false
# makes classes in src/AppBundle available to be used as services
AppBundle\:
resource: '../../src/AppBundle/*'
# you can exclude directories or files
# but if a service is unused, it's removed anyway
exclude: '../../src/AppBundle/{Entity,Controller,DQL,Form/DataTransformer,Repository}'
我声明我的小枝扩展为:
AppBundle\Twig\ImageExtension:
arguments:
$env: "%kernel.environment%"
和此服务的构造函数:
public function __construct(TokenStorage $token, UserRepository $userRepository, RedisCacheService $cache, string $env)
{
$this->env = $env;
$this->user = $token->getToken() ? $token->getToken()->getUser() : false;
$this->userRepository = $userRepository;
$this->cache = $cache;
}
似乎一切都好,但我得到了这个错误:
(1/1) AutowiringFailedException
Cannot autowire service "AppBundle\Twig\ImageExtension": argument "$env" of method "__construct()" must have a type-hint or be given a value explicitly.
也不知道如何修复它。
所以问题是,如果我试图使用AppBundle的services.yml,如果我理解正确,从捆绑包导入服务的旧风格不适用于自动连接/自动配置,因为我们需要重写load()
方法从AppExent
使用类型提示。所以我已经把我所有的服务替换为应用/配置/services.yml,这对我很有帮助。
我有相同的错误消息,但由不同的错误引起。也许有人会觉得这很有用。
我的初始配置在服务中。yml是:
app.my_service:
class: 'AppBundle\Service\MyService'
arguments:
$foobar: 'some value for foobar'
public: true
我得到了这个错误:
无法自动连接服务"AppBundle\Service\MyService":方法"__construct()"的参数"$fobar"必须具有类型提示或显式地给出值。
几个小时后,我找到了解决办法:
AppBundle\Service\MyService:
arguments:
$foobar: 'some value for foobar'
app.my_service:
alias: AppBundle\Service\MyService
public: true
我有一个 Rest Controller 类,其中我正在自动布线服务层。现在我想模拟测试类中的服务层,但在运行我的测试类 控制器代码 测试类 我是JUnit5和Mockito的新手。有人能告诉我哪里错了吗?
我已经配置了spring cloud config,它从GitHub获取属性。如果发送到,我还可以在应用程序中获得更新的值。 我是否需要为它实现Rabbitmq和云总线,或者有任何其他简单的方法来实现它?另外,该文档指出,我们需要为推送通知添加对spring-cloud-config-monitor库的依赖关系。http://projects.spring.io/spring-cloud/spri
介绍常用的服务配置。 云联壹云 平台支持基于climc命令修改常用服务配置。 说明 请确保First Node节点已正确初始化climc工具,配置步骤请参考CLIMC工具 通用配置命令如下 目前支持配置的服务有keystone、glance、region2、yunionapi、common等。 命令模式 在命令行下输入climc并带额定的参数获取相应的结果。 # 查看服务的配置信息 $ climc
我想使用apache thrift开发一些本地网络服务。应该有多个服务等待一个主机连接到它们,并独占使用它们,直到主机释放它们。这些服务是用多种语言编写的。 之所以选择使用thrift,是因为我需要一些简单的远程过程调用机制,用于快速且支持多种语言的服务之间的通信。虽然thrift适合RPC,但我需要一些机制来通过一些自动发现机制定位服务TCP地址和端口,然后才能在不硬连接地址的情况下将thrif
我在Symfony 3.4中开发一个迷你应用程序。正在使用Guard进行身份验证过程。我已经创建了一个名为LoginForm签字机的类,它扩展了AbstractFormLogin签字机。 接收错误: 无法自动连接服务“app.security.login\u form\u authenticator”:方法“AppBundle\security\LoginFormAuthenticator:::\
本文向大家介绍Ubuntu下配置Tomcat服务器以及设置自动启动的方法,包括了Ubuntu下配置Tomcat服务器以及设置自动启动的方法的使用技巧和注意事项,需要的朋友参考一下 既然是Ubuntu,那就要利用好“新立得软件包管理器”了。 1.Tomcat需要jdk的支持,所以先说一下jdk的安装,已经安装好了jdk的可以直接看第2条。 1.1安装jdk 在新立得中搜索“sun-j