使用 composer create-project 可快速基于现有模板创建PHP应用,适用于启动框架(如Laravel、Symfony)、CMS或内部脚手架项目。1. 命令语法:composer create-project [选项] [目录] [];2. 示例:composer create-project laravel/laravel my-blog ^9.0 会下载指定版本并初始化项目;3. 常用选项包括 --no-dev(跳过开发依赖)、--prefer-dist(加速安装)、--keep-vcs(保留版本控制);4. 与 require 不同,create-project 用于生成完整应用而非向现有项目添加库。掌握该命令可显著提升项目初始化效率。

当你想快速搭建一个基于现有项目的PHP应用时,composer create-project 是最常用的命令之一。它能直接从一个已有的项目模板(如 Laravel、Symfony 或自定义框架)创建出全新的本地项目,省去手动配置的麻烦。
什么情况下使用 create-project?
这个命令适用于以下几种典型场景:
- 初始化一个基于框架的新项目,比如 Laravel 或 Symfony 的标准版
- 搭建一个内容管理系统(如 TYPO3、Drupal 的 Composer 版本)
- 基于公司内部封装的项目脚手架快速启动新业务系统
- 学习某个开源项目时,快速拉取可运行的完整代码
简单说,只要你想“从一个完整的项目模板开始”,而不是从零写 composer.json,就该用 create-project。
基本语法与参数说明
命令的基本结构如下:
composer create-project [选项] [目录名] []-
包名:要复制的 Composer 包,例如
laravel/laravel - 目录名(可选):本地生成的项目文件夹名称,不填则默认用包名
-
版本(可选):指定要安装的版本,如
^8.0或dev-main
示例:创建一个 Laravel 9 项目
composer create-project laravel/laravel my-blog ^9.0这条命令会:
- 从 packagist 下载
laravel/laravel包 - 选择符合
^9.0的最新版本 - 在当前目录下创建名为
my-blog的文件夹并解压 - 自动执行 post-create-project-cmd 钩子(如生成 key、权限设置等)
常用选项与技巧
你可以通过添加选项控制行为:
- --no-dev:不安装开发依赖(适合生产环境部署)
- --prefer-dist:优先从压缩包安装(更快)
- --prefer-source:从源码克隆(便于调试或贡献代码)
- --keep-vcs:保留 .git 目录(如果你是从 git 源创建且希望继续版本控制)
比如你想基于 Symfony 的标准模板创建项目,并跳过测试相关包:
composer create-project symfony/skeleton my-api --no-dev又或者你正在尝试一个实验性分支:
composer create-project mycompany/cms-project test-site dev-feature-new-admin与 require 命令的区别
很多人混淆 create-project 和 require。关键区别是:
-
require是向**已有项目**添加库,用于开发类库或模块 -
create-project是生成一个**完整可运行的应用项目**,通常带骨架代码和入口文件
换句话说:你在写一个包,用 composer init + require;你要搭一个网站,用 create-project。
基本上就这些。掌握这个命令,能让你在 PHP 生态中更高效地启动新项目。










