【发布时间】:2016-08-26 11:37:20
【问题描述】:
我有以下设置:
symfony 2.7 经典结构
依赖管理作曲家
我需要做的是在 parameters.yml 中设置一个变量,其中包含运行 composer 时的时间戳。
为此,我尝试了以下解决方案:
parameters.yml.dist
[bla bla bla]
ran_timestamp: ~
composer.json
[bla bla bla]
"scripts": {
"pre-install-cmd": [
"export SYMFONY_APP_DATE=$(date +\"%s\")"
],
}
"extra": {
"incenteev-parameters": {
"file": "app/config/parameters.yml",
"env-map": {
"ran_timestamp": "SYMFONY_APP_DATE"
}
}
}
在 parameters.yml 中设置变量的部分工作正常(参数是使用来自 SYMFONY_APP_DATE 环境变量的值创建的)。
问题是运行 composer 时 env 变量没有更新。有人可以帮我吗?
附加信息:
如果我在 cli 中手动运行 pre-install-cmd 中的命令,它工作正常(所以我认为命令本身没问题)
我看到命令在 composer 开始安装后正在运行,所以我认为它已执行(输出如下):
$composer 安装
导出 SYMFONY_APP_DATE=$(date +"%s")
使用包信息加载作曲家存储库 [bla bla bla]
没有错误报告
我假设 composer 没有权限设置环境变量?- 不,不是这个。它与变量范围有关。
【问题讨论】:
-
@JakubZalas 这不是真的,它将使用新的 env 值进行更新
-
@DmitryMalyshenko 你是对的。环境变量的处理方式确实不同。 github.com/Incenteev/…
-
@Jakub Zalas 正如 Dmitry 所指出的,它已更新。这部分工作正常。
标签: php symfony composer-php