如何创建一个composer项目模板供create-project使用

答案:创建可复用的Composer项目模板需先构建基础结构并配置type为project的composer.json,随后发布至Packagist或私有仓库,用户即可通过composer create-project命令生成新项目,自动替换占位符、移除版本控制并安装依赖,还可通过post-create-project-cmd脚本执行初始化操作。

如何创建一个composer项目模板供create-project使用

创建一个 Composer 项目模板,让你或他人能通过 composer create-project 快速生成新项目,关键是将你的项目设置为可复用的骨架结构,并正确配置 composer.json。以下是具体步骤:

1. 创建模板项目结构

准备一个基础项目作为模板,包含你希望新项目默认拥有的文件和目录。例如:

  • src/ – 源代码
  • config/配置文件
  • public/index.php – 入口文件
  • composer.json – 核心配置
  • .gitignoreREADME.md

你可以使用占位值(如 your-vendor/project-name)在 composer.json 中,后续会被自动替换。

2. 配置 composer.json 为项目模板

确保 composer.json 中包含以下关键字段:

{   "name": "your-vendor/skeleton",   "type": "project",   "description": "A project template for creating new applications.",   "license": "MIT",   "require": {     "php": "^8.1"   },   "autoload": {     "psr-4": {       "App": "src/"     }   },   "extra": {     "branch-alias": {       "dev-main": "1.0-dev"     }   } } 

注意:

  • composer.json1 是必须的,这样 composer.json2 才能识别。
  • 不要添加 composer.json3 字段来替换自身包名,除非你有特殊需求。

3. 发布到 Packagist 或私有仓库

将模板项目推送到 Git 仓库(GitHub、GitLab 等),然后提交到 Packagist。如果你是企业用户,也可以发布到私有 Composer 仓库(如 Satis、Private Packagist)。

  • 确保版本打上 tag(如 composer.json4)
  • Packagist 会自动抓取元数据

4. 使用 create-project 创建新项目

一旦模板发布,其他人就可以这样使用:

如何创建一个composer项目模板供create-project使用

AiPPT模板广场

AiPPT模板广场-PPT模板-word文档模板-excel表格模板

如何创建一个composer项目模板供create-project使用50

查看详情 如何创建一个composer项目模板供create-project使用

composer create-project your-vendor/skeleton my-new-project

Composer 会:

  • 克隆模板项目
  • 创建新的 composer.json,不再包含模板的 name 和 extra 信息
  • 移除版本控制信息(.git
  • 安装依赖

5. (可选)支持自定义替换和脚本

你可以通过 Composer 的脚本机制,在项目创建后执行初始化操作,比如:

  • 重命名命名空间
  • 生成密钥
  • 提示用户输入项目名称

composer.json 中添加:

"scripts": {   "post-create-project-cmd": [     "echo 'Project created! Don't forget to configure your environment.'"   ] } 

更复杂的逻辑可以用 PHP 脚本实现,注册到 composer.json7 钩子。

基本上就这些。只要你的项目结构清晰、composer.json 正确标注为 composer.json9,并发布到可访问的仓库,就能被 composer.json2 使用。

以上就是如何创建一个php js git json composer github app ai gitlab 配置文件 php composer json 命名空间 public private 并发 github git gitlab

大家都在看:

php js git json composer github app ai gitlab 配置文件 php composer json 命名空间 public private 并发 github git gitlab

app
上一篇
下一篇