Symfony3的类型提示创建服务

问题描述 投票:0回答:2

如何配置我创建的服务才能够进行类型暗示?我看过的所有服务容器文档,以及任何与symfony的文档并没有什么我试图做的作品...

添加到了services.yml

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

添加到了我的课

    use AppBundle\Services\Tester;

试过的类型提示“测试$测试”,并得到错误。做错了什么?

symfony-3.3
2个回答
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
投票

我发现我需要的东西。我与Eclipse中的YAML编辑器的问题。它是制作标签的混乱,并不断地给我在其他方面的问题了。我结束了在安装YEdit,一切似乎工作。

© www.soinside.com 2019 - 2024. All rights reserved.