post-create-project-cmd事件可在Composer创建项目后自动执行初始化操作。1. 在composer.json的scripts中定义该事件,如运行init.php、修改权限、复制.env文件;2. 可使用PHP类(如ProjectInit::run)处理复杂逻辑,实现目录创建、密钥生成等;3. 注意脚本权限、路径相对性及退出码;4. 适用于生成密钥、配置复制、Git初始化等场景,提升自动化与体验。

在使用 Composer 创建新项目时,可以通过 post-create-project-cmd 事件自动执行初始化脚本。这个事件会在 `composer create-project` 命令成功执行后触发,非常适合用于设置初始配置、生成环境文件、运行数据库迁移等操作。
要在创建项目后自动执行脚本,需在项目的 composer.json 文件中定义 scripts 字段:
{
"name": "your-vendor/your-project",
"scripts": {
"post-create-project-cmd": [
"@php init.php",
"chmod -R 755 bin/",
"cp .env.example .env"
]
}
}
上面的配置表示在项目创建完成后会依次执行:
init.php
bin/ 目录权限你也可以编写一个 PHP 类来处理更复杂的初始化逻辑。例如创建一个 ProjectInit.php 文件:
<?php
// ProjectInit.php
class ProjectInit
{
public static function run($event)
{
echo "正在初始化新项目...\n";
// 示例:创建 storage 目录
if (!is_dir('storage')) {
mkdir('storage', 0755, true);
echo "✔ storage 目录已创建\n";
}
// 示例:生成密钥(适用于框架)
$key = 'base64:' . base64_encode(random_bytes(32));
file_put_contents('.env', "\nAPP_KEY={$key}\n", FILE_APPEND);
echo "✔ 应用密钥已生成并写入 .env\n";
}
}
然后在 composer.json 中引用它:
"scripts": {
"post-create-project-cmd": [
"ProjectInit::run"
]
}
create-project 时触发,不会在普通 install 或 update 时运行php artisan key:generate).env.example → .env)以上就是Composer的 post-create-project-cmd 事件如何使用_创建新项目后自动执行初始化脚本的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号