create-project用于基于模板快速创建新项目,它会下载包、安装依赖并执行初始化脚本。例如composer create-project laravel/laravel my-app可一键搭建Laravel应用。与composer install(安装现有项目依赖)和require(添加新依赖)不同,create-project适用于从零启动项目。常用选项包括--stability指定版本稳定性,--prefer-source通过Git克隆源码,--no-dev跳过开发依赖以优化生产部署,--no-scripts禁用自动脚本便于调试。还可自建私有模板仓库实现团队标准化。常见问题如网络错误、权限不足、PHP版本不兼容、内存溢出等,可通过配置代理、调整权限、升级PHP或增加memory_limit解决。遇到问题时建议查看详细日志并结合搜索引擎排查。

composer create-project
composer create-project
composer create-project <vendor/package> [directory] [version]
<vendor/package>
laravel/laravel
symfony/website-skeleton
[directory]
[version]
dev-master
^9.0
当你运行这个命令时,Composer 会:
composer.json
vendor
post-create-project-cmd
.env
例如,创建一个 Laravel 项目:
composer create-project laravel/laravel my-laravel-app
这会下载 Laravel 的骨架代码,安装所有依赖,并在
my-laravel-app
create-project
composer install
require
这确实是初学者常遇到的一个困惑点,因为这几个命令都和依赖管理有关,但它们的用途和场景是截然不同的。
create-project
composer install
composer install
composer.json
composer.lock
composer.lock
vendor
至于
composer require <vendor/package>
composer.json
require
composer.lock
composer update
所以,我的经验是:如果你是想从头开始一个新项目,并且这个项目有一个现成的 Composer 模板,就用
create-project
install
require
create-project
create-project
--stability
composer create-project laravel/laravel my-dev-app --stability=dev
这在测试新功能或贡献代码时特别有用。
--prefer-dist
--prefer-source
--prefer-dist
dist
--prefer-source
source
.git
composer create-project vendor/package my-project --prefer-source
--no-dev
--no-dev
composer create-project vendor/package my-production-app --no-dev
--no-scripts
php artisan key:generate
--no-scripts
composer create-project vendor/package my-project --no-scripts
这在调试创建过程或者需要在特定容器中运行脚本时很方便。
高级技巧:创建自己的项目模板
create-project
composer.json
例如,你可以创建一个名为
my-org/my-boilerplate
composer create-project my-org/my-boilerplate new-project-name
来快速启动符合团队规范的新项目。这对于保持项目一致性、加速新项目启动,以及降低新成员上手难度都非常有帮助。我发现,很多公司内部都会维护这样的私有模板,以确保代码质量和开发效率。
create-project
即使
create-project
网络连接问题: 错误信息可能类似于 "Could not connect to repo.packagist.org" 或 "Failed to download..."。 排查:
composer config -g http-proxy <proxy_url>
权限问题: 当 Composer 尝试在某个目录下创建文件或目录时,可能会遇到 "Permission denied" 错误。 排查:
/var/www
sudo
sudo composer
vendor
PHP 版本不兼容: 项目模板或其依赖可能要求特定的 PHP 版本。如果你的 PHP 版本不符合要求,Composer 会明确提示,例如 "Your PHP version (7.4.3) does not satisfy that requirement (8.0.0)."。 排查:
php -v
phpbrew
asdf
nvm
内存限制: 在安装大量依赖或大型项目时,Composer 可能会因为 PHP 内存限制而崩溃,提示 "Allowed memory size of X bytes exhausted..."。 排查:
php -d memory_limit=-1 /usr/local/bin/composer create-project ...
/usr/local/bin/composer
php.ini
memory_limit
memory_limit = 2G
Git/SVN 未安装或不在 PATH 中: 如果项目模板的某些依赖需要通过 Git 或 SVN 克隆源代码(特别是当你使用
--prefer-source
git --version
svn --version
Post-install 脚本执行失败: 有些项目模板会在安装完成后自动运行一些脚本(如数据库迁移、密钥生成)。如果这些脚本执行失败,可能会导致项目初始化不完整。 排查:
--no-scripts
我的经验告诉我,遇到问题时,第一步永远是仔细阅读错误信息。Composer 的错误提示通常都非常具体和有帮助。如果错误信息不够清晰,可以尝试添加
--verbose
-v
-vv
-vvv
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号