【发布时间】:2021-10-31 19:16:39
【问题描述】:
我创建了一个 Symfony 项目,将在其他公司复制。
我想通过使用“composer create-project”之类的命令为其他公司简化此项目的安装,同时提出问题,这些问题将根据他们的答案修改.env。
我如何使用 Composer 完成此任务?
【问题讨论】:
标签: php symfony installation composer-php
我创建了一个 Symfony 项目,将在其他公司复制。
我想通过使用“composer create-project”之类的命令为其他公司简化此项目的安装,同时提出问题,这些问题将根据他们的答案修改.env。
我如何使用 Composer 完成此任务?
【问题讨论】:
标签: php symfony installation composer-php
composer create-project 只是克隆一个包的 VCS 存储库,然后执行composer install。 (Docs)。
没有其他魔法。
因此,您只需使用自定义 composer.json 创建一个包,声明您想要引导项目的任何依赖项:
{
"require": {
"foo/bar": "^1.1",
"fizz/buzz": "^3.0"
}
}
要创建向用户提出问题并执行其他操作以响应的逻辑(例如,向.env 添加内容),您可以利用Package Events。特别是post-create-project-cmd。
所以你会在骨架composer.json 中添加如下内容:
{
"require": {
"foo/bar": "^1.1",
"fizz/buzz": "^3.0"
},
"scripts":
{
"post-create-project-cmd": [
"php bin/your_custom_setup_script.php"
]
}
}
阅读更多关于设置脚本here。
您必须自己编写自定义脚本的实际编码。它可以做任何您需要帮助引导安装的事情(更新配置、创建目录、清除缓存等)。
【讨论】: