【发布时间】:2015-02-28 17:19:55
【问题描述】:
我需要从应用程序内部读取security.yml文件的一个参数的值。
我尝试了以下方法来获取所有参数的列表
$parameters=$this->container->getParameterBag()->all();
这给了我一个有趣的参数列表,但我没有看到与 security.yml 相关的参数(尽管 security.yml 已正确导入到 config.yml 中)
imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: services.yml }
这里是security.yml。我想读取remember_me生命周期的值。
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
check_path: /login_check
login_path: /login
always_use_default_target_path: false
default_target_path: /main
provider: fos_userbundle
csrf_provider: form.csrf_provider
remember_me:
key: '%secret%'
lifetime: 60
path: /
domain: ~
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
谢谢!
【问题讨论】:
-
只有参数下的东西才会进入参数包。大多数配置选项都是在依赖注入配置下处理的,最终被注入到服务中。防火墙尤其复杂。你可以看看 SecurityBundle DependencyInjection 的东西,看看 remember_me 是否最终可以在某个地方访问。但最好的办法是添加自己的参数。
标签: symfony parameters yaml