作曲家如何了解symfony环境
我尝试在“集成”环境中部署应用程序,但在“composer update”命令之后,生成的parameters.yml文件不包含可能的集成参数 以下是我所做的: 我在app/config中创建了一个“config_integ.yml”文件,其中包含:作曲家如何了解symfony环境,symfony,composer-php,Symfony,Composer Php,我尝试在“集成”环境中部署应用程序,但在“composer update”命令之后,生成的parameters.yml文件不包含可能的集成参数 以下是我所做的: 我在app/config中创建了一个“config_integ.yml”文件,其中包含: # app/config/config_integ.yml imports: - { resource: parameters_integ.yml } - { resource: config.yml } framework:
# 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
如何告诉composer使用parameters_integ.yml文件来构建parameter.yml文件?因为之后将有一个prod环境,所以无法在parameters.yml.dist文件中写入参数
如果您需要其他信息,请告诉我
感谢您的帮助最佳做法是在
app/config/parameters.yml.dist
文件中设置默认参数
请参阅此链接:
运行时:
composer update
它将使用
parameters.yml.dist
并用dist
文件中的值覆盖parameters.yml
。最佳做法是在app/config/parameters.yml.dist
文件中设置默认参数
请参阅此链接:
运行时:
composer update
它将使用parameters.yml.dist
并用dist
文件中的值覆盖parameters.yml
。1)您应该在VCS中包含composer.json和composer.lock
2) 您不应在VCS中包含参数.yml
3) 部署Sf应用程序时,应使用composer安装
- 编写器安装和编写器更新之间的差异(++编写器锁定):
- 您可以手动创建parameters.yml文件,并将其放置在parameters.dist.yml
- 如果没有参数。yml或参数。yml缺少一些参数,当您运行composer install时,系统将提示您输入缺少的参数和参数。yml将在composer install过程中创建/更新
- 您可以拥有一个app/config/parameters文件夹,其中包含parameters\u prod.yml和parameters\u integ.yml文件,其中一个文件在部署期间自动复制到parameter.yml文件中(最复杂的解决方案)
如果希望通过浏览器访问集成环境,还应为其创建前端控制器。将web/app.php文件复制到web/app_integ.php并编辑要集成的环境:
// web/app_integ.php
// ...
// change just this line
$kernel = new AppKernel('integ', false);
// ...
更多信息请访问
而对题目“作曲家是如何了解symfony环境”的回答——我认为作曲家对Sf环境一无所知 composer有require dev选项,用于生产中不需要的包、运行测试所需的包(例如phpunit)、开发过程中的一些调试工作,等等。 例如,我的一个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安装--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)您应该在VCS中包含composer.json和composer.lock
2) 您不应在VCS中包含参数.yml
3) 部署Sf应用程序时,应使用composer安装
- 编写器安装和编写器更新之间的差异(++编写器锁定):
- 您可以手动创建parameters.yml文件,并将其放置在parameters.dist.yml
- 如果没有参数。yml或参数。yml缺少一些参数,当您运行composer install时,系统将提示您输入缺少的参数和参数。yml将在composer install过程中创建/更新
- 您可以拥有一个app/config/parameters文件夹,其中包含parameters\u prod.yml和parameters\u integ.yml文件,其中一个文件在部署期间自动复制到parameter.yml文件中(最复杂的解决方案)
如果希望通过浏览器访问集成环境,还应为其创建前端控制器。将web/app.php文件复制到web/app_integ.php并编辑要集成的环境:
// web/app_integ.php
// ...
// change just this line
$kernel = new AppKernel('integ', false);
// ...
更多信息请访问
而对题目“作曲家是如何了解symfony环境”的回答——我认为作曲家对Sf环境一无所知 对于生产中不需要的软件包,composer有require dev选项,需要软件包