配置
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.3,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
< /div>配置
配置通常涉及到不同的应用程序部分(如基础设施和安全凭证)和不同的环境(开发、生产)。这就是为什么Symfoob娱乐下载ny建议你把应用程序配置分成三个部分。
基础设施配置
最佳实践
定义与基础设施相关的配置选项应用程序/配置/ parameters.yml
文件。
默认的parameters.yml
文件遵循这个建议并定义选项相关的数据库和邮件服务器基础设施:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# app / config / parameters.yml参数:database_driver:pdo_mysqldatabase_host:127.0。0< /span>。1database_port:~database_name:ob娱乐下载database_user:根database_password:~mailer_transport:smtpmailer_host:127.0。0< /span>。1mailer_user:~mailer_password:~#……
这些选项并不是定义内应用程序/配置/ config.yml
文件,因为它们与应用程序无关的行为。换句话说,应用程序不关心数据库或凭证访问的位置,只要正确配置数据库。
规范参数
最佳实践
定义所有应用程序的参数应用程序/配置/ parameters.yml.dist
文件。
2.3版本以来,Symfony包含一个ob娱乐下载配置文件parameters.yml.dist
,存储规范为应用程序配置参数列表。
每当一个新的配置参数定义为应用程序,您还应该将它添加到这个文件并提交更改您的版本控制系统。然后,当一个开发人员更新项目或部署到服务器,Symfony会检查是否有规范的区别ob娱乐下载parameters.yml.dist
文件和你当地的parameters.yml
文件。如果有差异,Symfony会问你为新参数提供一个值,ob娱乐下载它会将它添加到你的地方parameters.yml
文件。
与应用程序相关的配置
最佳实践
定义应用程序行为相关的配置选项应用程序/配置/ config.yml
文件。
的config.yml
文件包含应用程序所使用的选项修改其行为,例如邮件通知的发送者,或启用功能切换。定义这些值在parameters.yml
的配置文件添加一个额外的层不需要,因为你不需要或不想要这些改变在每个服务器上配置值。
中定义的配置选项config.yml
文件通常从一个差异环境到另一个地方。这就是为什么Symfoob娱乐下载ny已经包括应用程序/配置/ config_dev.yml
和应用程序/配置/ config_prod.yml
文件,这样您就可以覆盖每个环境的特定值。
常数和配置选项
定义应用程序配置时最常见的错误之一是创建新选项的值不会改变,如分页的结果的条目的数量。
最佳实践
使用常量定义配置选项很少改变。
< /div>定义配置选项的传统方法导致很多Symfony应用程序包括一个如下的选项,这将被用来控制文章的数量显示在博客主页:ob娱乐下载
1 2 3
# app / config / config.yml参数:homepage.num_items:10
如果你做过这样的过去,很可能你事实上从来没有实际上需要改变这个值。创建一个配置选项的值,你是永远不会配置仅仅是没有必要的。我们的推荐是在应用程序中定义这些值为常数。例如,你可以定义一个NUM_ITEMS
不变的帖子
实体:
1 2 3 4 5 6 7 8 9
/ / src / AppBundle /实体/ Post.php名称空间AppBundle\实体;类帖子{常量NUM_ITEMS =10;/ /……}
定义常量的主要优点是,您可以使用它们的值都在您的应用程序。当使用参数,他们只可以从容器访问Symfony的地方。ob娱乐下载
常量可以使用例如由于在树枝模板常数()函数:
1 2 3
<p>显示{{常数(' NUM_ITEMS ', post)}}最近的结果。< /p>
和教义实体和存储库现在可以轻松地访问这些值,而他们不能访问容器参数:
1 2 3 4 5 6 7 8 9 10 11 12
名称空间AppBundle\存储库;使用学说\ORM\EntityRepository;使用AppBundle\实体\帖子;类PostRepository扩展EntityRepository{公共函数findLatest(美元限制=::NUM_ITEMS){/ /……}}
唯一显著的缺点使用这种配置值的常量是你不能重新定义它们很容易在你的测试。
< /div>语义配置:不要这样做
最佳实践
不定义语义依赖注入配置包。
< /div>在解释如何加载服务配置在一个包吗文章,Symfonob娱乐下载y包有两个选择如何处理配置:通过正常的服务配置services.yml
通过一个特殊的文件和语义配置*扩展
类。
虽然语义配置更强大,提供不错的特性,比如配置验证,需要定义配置的工作量是不值得为包不应该共享第三方包。
< /div>完全移动敏感Symfony以外的选项ob娱乐下载
在处理敏感的选项,如数据库凭证,我们也建议您将它们存储在Symfony项目,让他们可以通过环境变量。ob娱乐下载学习如何做在以下文章:服务容器外部参数如何设置