如何配置我创建的服务以便能够进行类型提示?我已经查看了所有服务容器文档,以及与symfony文档有关的任何内容以及我正在尝试的任何内容......
将此添加到services.yml
Tester:
class: AppBundle\Services\Tester
public: true
将此添加到我的班级
use AppBundle\Services\Tester;
尝试输入提示“Tester $ test”并获取错误。做错了......
答案 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,一切似乎都有效。