创建模板项目结构,包含composer.json、src、config、public等目录;2. 配置composer.json,设置type为project,定义PSR-4自动加载;3. 将模板推送到GitHub并发布到Packagist;4. 使用composer create-project命令生成新项目,自动重写配置并保留结构;5. 清理敏感信息,使用占位符和.env.example文件。

想让 composer create-project 命令直接生成你预设的项目结构?你可以创建一个 Composer 项目模板,把常用配置、目录结构、基础代码打包成可复用的骨架。这样每次启动新项目时,只需一条命令就能快速搭建环境。
1. 创建模板项目结构
新建一个目录作为模板项目的根,比如 my-app-skeleton,然后按标准结构组织文件:
my-app-skeleton/ ├── composer.json ├── src/ │ └── index.php ├── config/ │ └── app.php ├── public/ │ └── index.php └── .gitignore
这个结构是你希望新项目自动生成的内容。可以包含默认类、配置文件、路由、README 等。
2. 配置 composer.json 为项目骨架
关键在于 composer.json 的设置。你需要声明它是一个用于项目生成的“骨架”包:
示例 composer.json:
{
"name": "your-vendor/my-app-skeleton",
"description": "Project skeleton for My Application",
"type": "project",
"require": {},
"autoload": {
"psr-4": {
"MyApp\\": "src/"
}
},
"minimum-stability": "stable",
"prefer-stable": true,
"config": {
"allow-plugins": {
"composer/installers": true
}
}
}
- type: project 表明这是一个可被 create-project 使用的项目模板。
- 不要加多余的 scripts 或 require-dev,除非你确定每个衍生项目都需要。
- 使用 PSR-4 自动加载规范,便于后续扩展。
3. 发布模板到 Packagist
将你的骨架项目推送到 GitHub/GitLab 等公共仓库,然后提交到 Packagist,以便通过 Composer 安装。
- 确保版本打上 tag(如
v1.0.0) - Packagist 会自动抓取信息,或手动触发更新
4. 使用 create-project 生成新项目
一切就绪后,用户可通过以下命令基于你的模板创建项目:
composer create-project your-vendor/my-app-skeleton my-new-project
Composer 会:
- 克隆模板代码
- 重写 composer.json 中的 name、description 等字段(避免继承原包名)
- 安装依赖(如果有)
- 保留原始文件结构
如果只想保留骨架结构而不继承任何包依赖,可在模板中不设 require;若需基础组件(如框架、工具库),也可列出。
5. 可选:清理模板中的敏感内容
确保模板中没有硬编码的数据库密码、API 密钥或作者信息。可以用占位符代替:
// config/app.php
return [
'db_host' => env('DB_HOST', 'localhost'),
];
同时提供 .env.example 文件供复制使用。
基本上就这些。创建一个高质量的项目模板能极大提升团队开发效率,统一项目风格,减少重复劳动。只要结构清晰、配置合理,create-project 就能成为你的项目启动利器。










