使用完全限定類名(FQCN)作為服務標識
在許多示例中,你將找到服務 ID,例如’acme.demo.service.id’(帶點的字串)。你 services.yml
將是這樣的:
services:
acme.demo.service.id:
class: Acme\DemoBundle\Services\DemoService
arguments: ["@doctrine.orm.default_entity_manager", "@cache"]
在你的控制器中,你可以使用此服務:
$service = $this->get('acme.demo.service.id');
雖然這沒有問題,但你可以使用完全限定類名(FQCN)作為服務 ID:
services:
Acme\DemoBundle\Services\DemoService:
class: Acme\DemoBundle\Services\DemoService
arguments: ["@doctrine.orm.default_entity_manager", "@cache"]
在你的控制器中,你可以像這樣使用它:
use Acme\DemoBundle\Services\DemoService;
// ..
$this->get(DemoService::class);
這使你的程式碼更易於理解。在許多情況下,擁有一個不僅僅是類名的服務 ID 是沒有意義的。
從 Symfony 3.3 開始,如果你的服務 ID 是 FQCN,你甚至可以刪除 class
屬性。