配置
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 4.1,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
< /div>配置
配置通常涉及到不同的应用程序部分(如基础设施和安全凭证)和不同的环境(开发、生产)。这就是为什么Symfoob娱乐下载ny建议你把应用程序配置分成三个部分。
基础设施配置
这些选项改变从一台机器到另一个(例如,从开发机器到生产服务器),但不改变应用程序的行为。
最佳实践
定义与基础设施相关的配置选项环境变量。在开发期间,使用.env
和.env.local
文件在您的项目设置这些的根源。
默认情况下,Symfonob娱乐下载y将这些类型的选项添加到.env
文件在安装新应用程序依赖关系:
1 2 3 4 5 6 7 8 9 10
# .env# # # >教义/ doctrine-bundle # # #DATABASE_URL = sqlite: / / / % kernel.project_dir % / var /数据/ blog.sqlite# # # <教义/ doctrine-bundle # # ## # #ob娱乐下载 > symfony / swiftmailer-bundle # # #MAILER_URL = smtp: / / localhost ?加密= ssl&auth_mode = login&username =密码=# # #ob娱乐下载 < symfony / swiftmailer-bundle # # ##……
这些选项并不是定义内配置/ services.yaml
文件,因为它们与应用程序无关的行为。换句话说,应用程序不关心数据库或凭证访问的位置,只要正确配置数据库。
与特定机器的或敏感的值覆盖这些变量,创建一个.env.local
文件。这个文件不应该被添加到版本控制中。
谨慎
注意,倾销的内容$ _SERVER
和_ENV美元
变量或输出phpinfo ()
内容会显示环境变量的值,暴露敏感信息,比如数据库凭证。
规范参数
最佳实践
定义应用程序所有的env var.env
文件。
ob娱乐下载Symfony包含一个配置文件.env
在项目根目录商店规范化的环境变量列表应用程序。这个文件应该存储在版本控制,所以应该只包含不敏感的默认值。
谨慎
应用程序创建在2018年11月之前有一个稍微不同的系统,包括一个.env.dist
文件。升级信息,请参阅:2018年11月.env &如何更新变化。
与应用程序相关的配置
最佳实践
定义应用程序行为相关的配置选项配置/ services.yaml
文件。
的services.yaml
文件包含应用程序所使用的选项修改其行为,例如邮件通知的发送者,或启用功能切换。定义这些值在.env
的配置文件添加一个额外的层不需要,因为你不需要或不想要这些改变在每个服务器上配置值。
中定义的配置选项services.yaml
可能会有所不同从一个环境到另一个地方。这就是为什么Symfoob娱乐下载ny支持定义配置/ services_dev.yaml
和配置/ services_prod.yaml
文件,这样您就可以覆盖每个环境的特定值。
常数和配置选项
定义应用程序配置时最常见的错误之一是创建新选项的值不会改变,如分页的结果的条目的数量。
最佳实践
使用常量定义配置选项很少改变。
< /div>定义配置选项的传统方法导致很多Symfony应用程序包括一个如下的选项,这将被用来控制文章的数量显示在博客主页:ob娱乐下载
1 2 3
#配置/ services.yaml参数:homepage.number_of_items:10
如果你做过这样的过去,很可能你事实上从来没有实际上需要改变这个值。创建一个配置选项的值,你是永远不会配置仅仅是没有必要的。我们的推荐是在应用程序中定义这些值为常数。例如,你可以定义一个NUMBER_OF_ITEMS
不变的帖子
实体:
1 2 3 4 5 6 7 8 9
/ / src /实体/ Post.php名称空间应用程序\实体;类帖子{常量NUMBER_OF_ITEMS =10;/ /……}
定义常量的主要优点是,您可以使用它们的值都在您的应用程序。当使用参数,他们只可以从容器访问Symfony的地方。ob娱乐下载
常量可以使用例如由于在树枝模板常数()函数:
1 2 3
<p>显示{{常数(' NUMBER_OF_ITEMS ', post)}}最近的结果。< /p>
和教义实体和存储库现在可以轻松地访问这些值,而他们不能访问容器参数:
1 2 3 4 5 6 7 8 9 10 11 12
名称空间应用程序\存储库;使用应用程序\实体\帖子;使用学说\ORM\EntityRepository;类PostRepository扩展EntityRepository{公共函数findLatest(美元限制=::NUMBER_OF_ITEMS){/ /……}}
唯一显著的缺点使用这种配置值的常量是你不能重新定义它们很容易在你的测试。
< /div>参数命名
最佳实践
您的配置参数的名称应尽可能短,应该包括整个应用程序的常见的前缀。
< /div>使用应用程序。
作为前缀的参数是一种常见的做法,避免碰撞和Symfony和第三方包/库参数。ob娱乐下载然后,使用只有一个或两个词来描述参数的目的:
1 2 3 4 5 6 7 8 9 10
#配置/ services.yaml参数:#不这样做:“dir”是通用的,它不表达任何意思app.dir:“……”#这样做:短暂而容易理解的名字app.contents_dir:“……”#这是可以使用点,突显出,破折号或什么,但总是#是一致的所有参数和使用相同的格式app.dir.contents:“……”app.contents-dir:“……”
下一个:组织您的业务逻辑