1
我在我的Symfony應用程序中有一項服務,我從控制器知道我們可以使用它的功能$this->get('MyService');
,但是從我的控制器之外的腳本中應該如何調用它?如何從控制器的外部使用Symfony2.2服務?
我在我的Symfony應用程序中有一項服務,我從控制器知道我們可以使用它的功能$this->get('MyService');
,但是從我的控制器之外的腳本中應該如何調用它?如何從控制器的外部使用Symfony2.2服務?
你必須註冊之外,控制器類作爲您包的服務配置服務(我假定陽明配置)
services:
your_service_name:
class: Your/NonController/Class
arguments: ['@service_you_want_to_inject']
現在
在你的類,你要使用的注射服務:
// Your/NonController/Class.php
protected $myService;
// your 'service_you_want_to_inject' will be injected here automatically
public function __construct($my_service)
{
$this->myService = $my_service;
}
記住的依賴注入發生,你必須真正使用這個類作爲服務了 - 否則注射不會自動發生。
你現在可在控制器中新創建的服務照常:
// 'service_you_want_to_inject' will be automatically injected in the constructor
$this->get('your_service_name');
也有setter和財產注射但這不在這個問題的範圍...瞭解更多關於DI在Service Container symfony文檔的一章。
這個腳本在哪裏?另一項服務? – Maerlyn