我尝试在“集成”环境中部署应用程序,但在“composer update”命令之后,生成的parameters.yml文件不包含可能的集成参数
这是我做的: 我在app / config中创建了一个“config_integ.yml”文件:
# app/config/config_integ.yml
imports:
- { resource: parameters_integ.yml }
- { resource: config.yml }
framework:
profiler: { only_exceptions: false }
parameters_integ.yml文件包含集成环境的参数。开始的例子:
parameters:
database_host: localhost
database_port: null
database_name: test_integ
database_user: root
parameters.yml.dist包含这些参数,默认值为:
parameters:
database_host: 127.0.0.1
database_port: ~
database_name: symfony
database_user: root
我如何告诉作曲家采用parameters_integ.yml文件来构建parameter.yml文件?因为之后我将有一个prod环境,我无法在parameters.yml.dist文件中编写我的参数。
告诉我你是否需要其他信息
感谢您的帮助
答案 0 :(得分:4)
1)您应该在VCS中包含 composer.json 和 composer.lock
2)您不应在VCS中包含 parameters.yml
3)部署Sf应用程序时,您应该使用 composer install
http://symfony.com/doc/current/deployment.html#c-install-update-your-vendors
作曲家安装和作曲家更新(+ composer.lock )之间的区别:https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file
4)我可以想到在集成环境中创建 parameters.yml 的几种方法:
或
或
如果您希望通过浏览器访问集成环境,则还应为其创建前端控制器。将 web / app.php 文件复制到 web / app_integ.php 并编辑要集成的环境:
// web/app_integ.php
// ...
// change just this line
$kernel = new AppKernel('integ', false);
// ...
https://symfony.com/doc/current/configuration/environments.html#creating-a-new-environment
的更多信息标题中问题的答案,"作曲家如何知道symfony环境" - 我认为作曲家不了解Sf环境:)
作曲家对你在制作中不需要的软件包,运行测试所需的软件包(例如phpunit),开发过程中的一些调试工具等具有 require-dev 选项。 举个例子,我的 composer.json 文件之一就是这样的:
...
"require-dev": {
"sensio/generator-bundle": "^3.0",
"symfony/phpunit-bridge": "^3.0",
"doctrine/doctrine-fixtures-bundle": "^2.3",
"nelmio/alice": "^2.1",
"deployer/deployer": "^4.0"
},
...
如果我运行composer install --no-dev
,这些软件包将不会安装在供应商目录中。
但是,Sf如何知道何时在应用程序中包含/省略某些包。
在 AppKernel.php 。
中定义在 composer.json 中的" require-dev"关键我定义我不想在生产中使用教义装置。
所以,在 AppKernel.php 里面我放了这些代码行:
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
...
$bundles[] = new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle();
}
如果我在生产模式下运行我的应用程序,就不会有DoctrineFixturesBundle。
答案 1 :(得分:0)
最佳做法是在app/config/parameters.yml.dist
文件中设置默认参数。
查看此链接: http://symfony.com/doc/current/best_practices/configuration.html#canonical-parameters
当你跑步时:
composer update
它将使用parameters.yml.dist
并使用parameters.yml
文件中的值覆盖dist
。