Php 如何使用service.yml中的自定义选项?

Php 如何使用service.yml中的自定义选项?,php,symfony,Php,Symfony,在Symfony 3中,是否可以将任何自己的选项添加到service.yml文件中,然后使用它 例如,我在service.yml文件中添加了一个描述: 如果可能,我如何从我的服务类中获取此描述 我试过了 $this->container->get('app.message_generator'); 但我看不到信息 谢谢 services: app.message_generator: description: 'Some description...'

在Symfony 3中,是否可以将任何自己的选项添加到service.yml文件中,然后使用它

例如,我在service.yml文件中添加了一个描述:

如果可能,我如何从我的服务类中获取此描述

我试过了

$this->container->get('app.message_generator');
但我看不到信息

谢谢

services:
    app.message_generator:
        description: 'Some description...'
        class:     AppBundle\Service\MessageGenerator
        arguments: ['Some description...']

显然,您需要在服务中添加一个参数。

您是否尝试过以下方法:

services:
app.message_generator:
    class:     AppBundle\Service\MessageGenerator
    arguments: [ 'Some description...' ]
在你的服务课上:

/**
 * @param string      $description
 */
public function __construct(
    $description)
{
    $this->description = $description;
}
但说实话,我不明白你为什么要这样做,因为

  • 如果需要公共参数,请使用一个而不是服务参数

  • 如果需要特定于服务的常量,请在服务中使用常量

  • 例如:


    我想你不会从集装箱里拿的。您可以通过从yml文件加载配置本身来实现;让我们知道你想用它做什么,你想完成什么。我想在我的应用程序中有一个服务列表,其中包含服务的描述。你可能可以使用标签做你想做的事情:但是就像其他几张海报提到的那样,很难看到描述的用例。你想为程序员或网站的某些用户提供服务描述,以便他们知道自己在使用什么?这些都不属于服务配置。从这个意义上讲,服务应该能够描述自己,因此听起来像是一个接口:
    servicescriptioninterface
    ,其中有一个必需的方法:
    公共静态函数getDescription()那么每个应该是自描述的服务都将实现该接口。
    
    /**
     * @param string      $description
     */
    public function __construct(
        $description)
    {
        $this->description = $description;
    }
    
    class Service
    {
    
    const DESCRIPTION = 'Some description...';