使用composer create-project可快速创建PHP项目,它会下载项目骨架并自动安装依赖,适合启动框架类项目;而composer init适用于从空目录逐步构建项目,通过交互式提问生成composer.json文件,适合自定义或库开发。前者用于快速搭建如Laravel等框架应用,后者用于轻量级或独立工具开发。最佳实践中建议指定版本约束、了解骨架结构、优先使用--prefer-dist、确保来源可信,并在项目初期完成定制。对于依赖管理,composer.json定义依赖范围和项目元数据,是项目的“蓝图”;composer.lock记录依赖精确版本,保证环境一致性。应用项目应提交composer.lock以确保各环境一致,库项目则不应提交。两者协同工作,确保依赖可复现与稳定。

从零开始初始化PHP工程,Composer提供了两种主要途径:一种是利用
create-project
composer init
composer.json
要使用Composer创建新项目,最常见且高效的方式是利用
composer create-project
composer install
例如,如果你想创建一个新的Laravel项目,命令会是这样:
composer create-project laravel/laravel my-new-project
这行命令会做几件事:
立即学习“PHP免费学习笔记(深入)”;
laravel/laravel
my-new-project
my-new-project
laravel/laravel
composer.json
composer install
整个过程下来,你就拥有了一个可以直接运行的Laravel项目。这种方式极大地简化了新项目的启动流程,避免了手动下载、配置依赖的繁琐。
当然,如果你追求的是一个“完全从零开始”的空项目,甚至不依赖任何框架骨架,那么你可以在一个空目录中,先手动创建
composer.json
composer init
composer install
composer create-project
composer create-project
最典型的应用场景,就是启动各种PHP框架项目。无论是Laravel、Symfony、Lumen、Yii,还是CodeIgniter(虽然CodeIgniter用Composer不是那么普遍,但也有其方式),它们都有官方或社区提供的项目骨架包。用
create-project
最佳实践方面,有几点我觉得挺重要的:
composer create-project laravel/laravel my-new-project "9.*"
这样就能确保你拿到的是Laravel 9系列的最新稳定版。版本约束的写法和
composer.json
create-project
.env
key:generate
--prefer-dist
--prefer-source
--prefer-dist
--prefer-source
.git
--prefer-dist
create-project
总的来说,
create-project
嗯,有时候我们确实不需要一个大而全的框架骨架,可能只是想写个小工具,或者构建一个纯粹的库,甚至只是想在一个现有但没有Composer的项目里引入依赖。这时候,
composer init
create-project
composer.json
你在一个空的目录里运行:
composer init
然后,Composer会像一个友好的向导一样,问你一系列问题:
vendor/package
my-company/my-awesome-tool
dev
alpha
beta
RC
stable
stable
MIT
GPL-3.0-only
monolog/monolog
^2.0
phpunit/phpunit
当你回答完所有问题,Composer就会在当前目录生成一个
composer.json
{
"name": "my-company/my-awesome-tool",
"description": "A simple PHP tool for awesome stuff.",
"type": "project",
"license": "MIT",
"autoload": {
"psr-4": {
"MyCompany\MyAwesomeTool\": "src/"
}
},
"authors": [
{
"name": "Your Name",
"email": "your.email@example.com"
}
],
"require": {
"php": ">=8.0",
"monolog/monolog": "^2.0"
},
"require-dev": {
"phpunit/phpunit": "^9.5"
}
}注意,这里我手动添加了一个
autoload
composer init
autoload
psr-4
src/
MyCompanyMyAwesomeTool
生成
composer.json
composer install
这个命令会根据
composer.json
vendor/
composer.lock
vendor/autoload.php
src/
require __DIR__ . '/vendor/autoload.php';
composer.json
composer.lock
在Composer的世界里,
composer.json
composer.lock
composer.json
composer.json
"monolog/monolog": "^2.0"
>=2.0.0 <3.0.0
这个文件是项目的心脏,它包含了:
require
require-dev
autoload
scripts
composer.json
composer update
composer.lock
composer.lock
composer install
composer update
这个文件的核心作用是确保环境一致性。想象一下,你和你的团队成员在不同的机器上开发同一个项目。如果只依赖
composer.json
composer install
composer.lock
composer install
composer.lock
composer.lock
composer.json
composer.lock
composer install
总结与版本控制策略:
composer.json
composer.lock
composer.lock
理解这两个文件的作用,并正确地将它们纳入你的版本控制策略,是使用Composer进行高效、稳定项目管理的关键。当你需要更新依赖时,运行
composer update
composer.json
composer.lock
composer install
composer.lock
以上就是Composer如何创建新项目_从零开始初始化PHP工程的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号