Symfony中的自定义配置

时间:2017-09-15 09:38:57

标签: php symfony

我需要定义这样的配置参数,如公司的联系人(电话,地址等),以便在树枝模板中使用。我该怎么做?对我来说最明显的方法是将它们添加到app/config/config.yml文件中,如下所示:

# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:
    locale: en
    contacts:
        phone: 08455555050

可以,还是有更好的方法?

此外,文档说我应该在实体中使用常量来保留永远不会改变的参数,但是我不需要一个可以保存这些数据的实体,如何使用它?我只是从Symfony开始并感到困惑。

2 个答案:

答案 0 :(得分:2)

我已经这样做了:

app/config/services.yml

parameters:
    locale: en
    contacts:
        phone: '123455678'
...
twig:
    debug: '%kernel.debug%'
    strict_variables: '%kernel.debug%'
    globals:
        contacts: '%contacts%'

嫩枝:

<span>{{ contacts.phone }}</span>

答案 1 :(得分:1)

制作一个返回贵公司的Service

返回教义实体的简单getCompany

注册服务

# app/config/services.yml
services:

    AppBundle\Service\MyTwigExtension:
        class: YourService

Twig global

中注册服务
# app/config/config.yml
twig:
    # ...
    globals:
        # the value is the service's id
        user_management: '@AppBundle\Service\MyTwigExtension'

在您的基础树枝模板上,您可以像这样调用服务

{% set Company = company.getCompanyInfo() %}

您可以在任何需要公司详情的地方Company.getMyField

我建议您创建一个实体,以便用户可以获得后端来修改他的公司详细信息,这将是未来更灵活的