如何为项目创建自定义安装程序进程?
How can I create a custom installer process for a project?
我创建了一个将在其他公司复制的 Symfony 项目。
我想通过使用“composer create-project”之类的命令为其他公司简化此项目的安装,同时询问将根据他们的答案修改 .env
的问题。
我如何使用 Composer 完成此操作?
composer create-project
简单地克隆了一个包的 VCS 存储库,然后执行 composer install
。 (Docs).
它没有其他魔法。
因此,您只需使用您的自定义 composer.json
创建一个包,声明您想要 bootstrapping 项目的任何依赖项:
{
"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。
您必须自己完成自定义脚本的实际编码。它可以做任何你需要帮助 bootstrap 安装的事情(更新配置、创建目录、清除缓存等)。
我创建了一个将在其他公司复制的 Symfony 项目。
我想通过使用“composer create-project”之类的命令为其他公司简化此项目的安装,同时询问将根据他们的答案修改 .env
的问题。
我如何使用 Composer 完成此操作?
composer create-project
简单地克隆了一个包的 VCS 存储库,然后执行 composer install
。 (Docs).
它没有其他魔法。
因此,您只需使用您的自定义 composer.json
创建一个包,声明您想要 bootstrapping 项目的任何依赖项:
{
"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。
您必须自己完成自定义脚本的实际编码。它可以做任何你需要帮助 bootstrap 安装的事情(更新配置、创建目录、清除缓存等)。