在Symfony2中配置服务的所有可用选项列表

在Symfony2中配置服务的所有可用选项列表,symfony,Symfony,我从symfony2开始工作 现在我在.yml文件中编写configs,并使用如下构造 services: my_mailer: # ... email_formatter_manager: class: EmailFormatterManager # ... email_configurator: class: EmailConfigurator arguments: [

我从symfony2开始工作

现在我在.yml文件中编写configs,并使用如下构造

services:
    my_mailer:
        # ...

    email_formatter_manager:
        class:     EmailFormatterManager
        # ...

    email_configurator:
        class:     EmailConfigurator
        arguments: ["@email_formatter_manager"]
        # ...
没关系。问题是-在哪里可以找到描述服务的所有可用选项的列表

是的,我喜欢Symfony\Component\DependencyInjection\Definition的源代码,我知道我可以从setter获取列表。但我仍然希望找到这个参数的评论手册页。有人能帮我链接吗


谢谢

您可以使用Symfony命令获取所有可用捆绑包的列表,然后向下搜索以获取其默认配置(如果已定义)和当前配置。例如:

列出所有捆绑包:

# can also use config:debug (or debug:config in Symfony 2.6 or later)
php app/console config:dump-reference
php app/console config:dump-reference WebProfilerBundle
# Default configuration for "WebProfilerBundle"
web_profiler:
    toolbar:              false
    position:             bottom
    intercept_redirects:  false
# Symfony <= 2.6
php app/console config:debug WebProfilerBundle

# Symfony 2.6+
php app/console debug:config WebProfilerBundle
# Default configuration for "WebProfilerBundle"
web_profiler:
    toolbar: false
    intercept_redirects: false
    position: bottom
列出捆绑包的默认配置:

# can also use config:debug (or debug:config in Symfony 2.6 or later)
php app/console config:dump-reference
php app/console config:dump-reference WebProfilerBundle
# Default configuration for "WebProfilerBundle"
web_profiler:
    toolbar:              false
    position:             bottom
    intercept_redirects:  false
# Symfony <= 2.6
php app/console config:debug WebProfilerBundle

# Symfony 2.6+
php app/console debug:config WebProfilerBundle
# Default configuration for "WebProfilerBundle"
web_profiler:
    toolbar: false
    intercept_redirects: false
    position: bottom
输出:

# can also use config:debug (or debug:config in Symfony 2.6 or later)
php app/console config:dump-reference
php app/console config:dump-reference WebProfilerBundle
# Default configuration for "WebProfilerBundle"
web_profiler:
    toolbar:              false
    position:             bottom
    intercept_redirects:  false
# Symfony <= 2.6
php app/console config:debug WebProfilerBundle

# Symfony 2.6+
php app/console debug:config WebProfilerBundle
# Default configuration for "WebProfilerBundle"
web_profiler:
    toolbar: false
    intercept_redirects: false
    position: bottom
列出捆绑包的当前配置:

# can also use config:debug (or debug:config in Symfony 2.6 or later)
php app/console config:dump-reference
php app/console config:dump-reference WebProfilerBundle
# Default configuration for "WebProfilerBundle"
web_profiler:
    toolbar:              false
    position:             bottom
    intercept_redirects:  false
# Symfony <= 2.6
php app/console config:debug WebProfilerBundle

# Symfony 2.6+
php app/console debug:config WebProfilerBundle
# Default configuration for "WebProfilerBundle"
web_profiler:
    toolbar: false
    intercept_redirects: false
    position: bottom

在Symfony 2.6及更高版本中,主命令切换到
debug:config
,但
config:debug
被设置为别名,因此仍然可以工作。

您可以查看services.xml的xsd,其中描述了结构的每种语法(yml仅在函数中的描述方式不同)。 例如,对于服务的可用密钥,您可以看到如下内容:

  <xsd:complexType name="service">
    <xsd:choice maxOccurs="unbounded">
      <xsd:element name="file" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="argument" type="argument" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="configurator" type="configurator" minOccurs="0" maxOccurs="1" />
      <xsd:element name="call" type="call" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="tag" type="tag" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="property" type="property" minOccurs="0" maxOccurs="unbounded" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:string" />
    <xsd:attribute name="class" type="xsd:string" />
    <xsd:attribute name="scope" type="xsd:string" />
    <xsd:attribute name="public" type="boolean" />
    <xsd:attribute name="synthetic" type="boolean" />
    <xsd:attribute name="synchronized" type="boolean" />
    <xsd:attribute name="lazy" type="boolean" />
    <xsd:attribute name="abstract" type="boolean" />
    <xsd:attribute name="factory-class" type="xsd:string" />
    <xsd:attribute name="factory-method" type="xsd:string" />
    <xsd:attribute name="factory-service" type="xsd:string" />
    <xsd:attribute name="alias" type="xsd:string" />
    <xsd:attribute name="parent" type="xsd:string" />
  </xsd:complexType>


可用

我从未找到一个摘要列表。听起来是个不错的文档项目。这确实描述了所有的各种功能:尽管我怀疑你已经看到了。当然,最有用的是你的意思是获得所有可用服务的列表吗?如果是这样,您可以使用
app/console container:debug
。实际上,我对bundle列表或它们的选项不感兴趣。我正在寻找所有可用的选项来声明我自己的服务(例如)--捆绑在页面上指定的选项,但系统选项并不好,我想我正在试图弄清楚您的确切意思。您的意思是仅仅是应用程序中存在的所有服务的通用列表吗?