Symfony3类型提示创建服务

时间:2017-09-27 21:59:34

标签: symfony-3.3

如何配置我创建的服务以便能够进行类型提示?我已经查看了所有服务容器文档,以及与symfony文档有关的任何内容以及我正在尝试的任何内容......

将此添加到services.yml

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

将此添加到我的班级

    use AppBundle\Services\Tester;

尝试输入提示“Tester $ test”并获取错误。做错了......

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我找到了我需要的东西。我在Eclipse中使用yaml编辑器时遇到了问题。它制造了一大堆标签,并且在其他方​​面也不断给我带来问题。我最终安装了YEdit,一切似乎都有效。