【发布时间】:2016-08-10 17:11:57
【问题描述】:
这可能是一个愚蠢的问题,但我看不到如何访问这些数据:
在主 app/config/config.yml 中,我有我的应用程序的一般配置数据。
parameters: #accessible by getParameter()
locale: fr
# ...
fos_user: #accessible by ???
#...
registration:
form:
from_email:
address: mymail@mydomain.fr
sender_name: TheSenderName
在我的自定义包中,我可以使用 config.yml 文件访问参数:
$this->container->getParameter('locale'); //gives me "fr" as expected
但是如何访问非参数配置值?
我想在这里获取 FOS 用户捆绑配置中定义的地址: 我做不到
$admin_adress = $this->container->getParameter('fos_user.registration.confirmation.from_email.address');
访问这些的正确方法是什么?
编辑: 是的,我想从 FOS 用户包(在此示例中,但可以是任何)、控制器或我的包中的任何内容中访问此配置数据。
【问题讨论】:
-
您制作的 Bundle 是否需要此功能?
-
是的。愚蠢的问题。嗯,不是真的。只有参数可以通过 getParameter 直接访问。除非捆绑包本身使它们可用,否则正常的配置内容将不可用。您最好的选择是将 from_email 定义为参数。或者可能深入研究捆绑包,看看它们是否暴露在某个地方。
-
他不能使用捆绑配置和扩展类将它们设置为参数吗?
-
感谢您提供的所有 cmets 和解决方案。我现在明白这不是一个如此幼稚的问题。我非常清楚地认为,由于每个包都在 config.yml 中进行了配置,因此有一种“常规”方式(SF 函数)也可以访问我的自定义包中的任何一个(在控制器、侦听器、管理器或其他任何东西中)。对我来说,Don Calisto 的解决方案是最简单的。这比在别处复制参数要好。但是,在示例中(FOS 用户包),这是一个标准配置数据值。
-
我创建了一个包,用于访问每个已注册包的最终配置值(内置,如 SecurityBundle 包括在内)。见github.com/chalasr/RCHConfigAccessBundle
标签: symfony configuration controller