enrise / soy-symfony-build-parameters-task
此包已被废弃且不再维护。未建议替代包。
Soy Symfony Build Parameters Task
0.2.0
2016-02-01 10:32 UTC
Requires
- soy-php/replace-task: >=0.1.0
- soy-php/soy: >=0.2.0
- symfony/yaml: ^2.0|^3.0
This package is not auto-updated.
Last update: 2022-10-15 08:35:16 UTC
README
这是一个已不再使用或维护的旧仓库。我们建议不再使用此仓库。
原始的README可以在下面找到
Soy Symfony Build Parameters Task
安装
此任务作为以下包可用:https://packagist.org.cn/packages/enrise/soy-symfony-build-parameters-task
你可以运行:composer require enrise/soy-symfony-build-parameters-task
安装后,你可以按照以下说明进行操作,如果你不熟悉soy,请先查看:https://github.com/soy-php/soy
目标和用法
此任务旨在生成symfony配置的parameters.yml
,为此使用环境策略。
默认策略执行以下操作:
- 读取全局环境文件:
files/env/environment.global.yml
- 读取环境文件:
files/env/environment.dev.yml
- 读取模板文件:
app/config/parameters.dist.yml
- 生成最终的参数文件:
app/config/parameters.yml
你只需创建简单的配方即可无需交互执行,例如
<?php use Enrise\Soy\SymfonyBuildParameters\ParametersTask; use Enrise\Soy\SymfonyBuildParameters\PrepareEnvironmentTask; use Enrise\Soy\SymfonyBuildParameters\PrepareSymfonyEnvironmentTask; $recipe = new \Soy\Recipe(); $recipe->component('symfony-parameters', function (PrepareSymfonyEnvironmentTask $environmentTask) { $environmentTask ->run(); }) ->cli([ParametersTask::class, 'prepareCli']) ->cli([PrepareEnvironmentTask::class, 'prepareCli']) ->cli([PrepareSymfonyEnvironmentTask::class, 'prepareCli']) ;
然后运行
# ./vendor/bin/soy symfony-parameters
结果
Running Enrise\Soy\SymfonyBuildParameters\PrepareSymfonyEnvironmentTask
Running Enrise\Soy\SymfonyBuildParameters\PrepareEnvironmentTask
Template file app/config/parameters.yml.dist
Destination file app/config/parameters.yml
Destination file will be replaced
Running Enrise\Soy\SymfonyBuildParameters\ParametersTask
Read environment file files/environment/environment.local.yml
Read global environment file files/environment/environment.global.yml
app/config/parameters.yml file generated successfully
基本的配方可能看起来像这样
<?php use Enrise\Soy\SymfonyBuildParameters\ParametersTask; use Enrise\Soy\SymfonyBuildParameters\PrepareEnvironmentTask; use Enrise\Soy\SymfonyBuildParameters\PrepareSymfonyEnvironmentTask; $recipe = new \Soy\Recipe(); $recipe->component('default', function (PrepareSymfonyEnvironmentTask $environmentTask) { $environmentTask ->run(); }) ->cli([ParametersTask::class, 'prepareCli']) ->cli([PrepareEnvironmentTask::class, 'prepareCli']) ->cli([PrepareSymfonyEnvironmentTask::class, 'prepareCli']) ;
这种方式将满足所有任务的依赖关系,并完全控制。帮助命令将如下所示
Optional Arguments:
component (default: default)
The component to run
--help
Show usage
--version
Show version
--no-diagnostics
Disable diagnostics
--recipe recipe (default: recipe.php)
The recipe file to use
--env-path env-path (default: files/environment)
The directory which contains the env files
--env env (default: dev)
The current environment name. I.E.: dev, test, prod
--dest-file dest-file (default: app/config/parameters.yml)
The destination file
--src-file src-file (default: app/config/parameters.yml.dist)
The source file used as template for generating the dist file
参数优先级(从低到高)
如果你没有提供选项,将使用命令的默认选项
- --env-path env-path(默认:
files/environment
) - --env env(默认:
dev
) - --dest-file dest-file(默认:
app/config/parameters.yml
) - --src-file src-file(默认:
app/config/parameters.yml.dist
)
Symfony环境变量
# SYMFONY_ENV=test ./vendor/bin/soy Running Enrise\Soy\SymfonyBuildParameters\PrepareSymfonyEnvironmentTask Symfony Environment detected as "test"
CLI参数
# SYMFONY_ENV=test ./vendor/bin/soy --env=local Running Enrise\Soy\SymfonyBuildParameters\PrepareSymfonyEnvironmentTask Symfony Environment detected as "local"
在配方中强制执行
配方
$recipe->component( 'symfony-prod', function (PrepareSymfonyEnvironmentTask $sfEnvironmentTask, ParametersTask $parametersTask) { $parametersTask->setEnv('prod'); $sfEnvironmentTask ->run(); } ) ->cli([ParametersTask::class, 'prepareCli']) ->cli([PrepareEnvironmentTask::class, 'prepareCli']) ->cli([PrepareSymfonyEnvironmentTask::class, 'prepareCli']) ;
# SYMFONY_ENV=test ./vendor/bin/soy --env=local Running Enrise\Soy\SymfonyBuildParameters\PrepareSymfonyEnvironmentTask Symfony Environment detected as "prod"