PHP Composer 包管理
Composer 是 PHP 的依赖管理工具,类似 Node.js 的 npm,是现代 PHP 开发的标配。
安装 Composer
BASH 实例
# PHP Linux / macOS
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Windows:下载 Composer-Setup.exe
https://getcomposer.org/download/
验证安装
composer --version
``
初始化项目
`bash
composer init
`
会生成
composer.json:
`json
{
"name": "myapp/blog",
"require": {
"php": ">=8.0"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
`
安装依赖包
`bash
安装包
composer require guzzlehttp/guzzle
composer require monolog/monolog
安装开发依赖(不上生产)
composer require --dev phpunit/phpunit
安装 composer.json 中所有依赖
composer install
更新所有包到最新版本
composer update
更新指定包
composer update monolog/monolog
`
使用已安装的包
`php
// 引入自动加载器(只需一行)
require __DIR__ . '/vendor/autoload.php';
// 使用 Guzzle 发送 HTTP 请求
use GuzzleHttp\Client;
$client = new Client();
$response = $client->get('https://api.github.com/users/php');
$data = json_decode($response->getBody(), true);
echo $data['public_repos'];
`
自动加载自己的类
`php
// composer.json 配置 PSR-4
// "autoload": { "psr-4": { "App\\": "src/" } }
// 更新自动加载
// composer dump-autoload
// src/Services/MailService.php
namespace App\Services;
class MailService {
public function send(string $to, string $subject): bool {
// 发送邮件逻辑
return true;
}
}
// index.php
require __DIR__ . '/vendor/autoload.php';
use App\Services\MailService;
$mail = new MailService();
$mail->send('user@example.com', '欢迎注册');
`
常用包推荐
包名 用途 guzzlehttp/guzzle HTTP 客户端 monolog/monolog 日志记录 vlucas/phpdotenv 读取 .env 配置 ramsey/uuid 生成 UUID nesbot/carbon 日期时间处理 phpmailer/phpmailer 发送邮件 intervention/image 图片处理 symfony/validator 数据验证
常用命令速查
`bash
composer require 包名 # 安装包
composer remove 包名 # 卸载包
composer update # 更新所有依赖
composer install # 根据 lock 文件安装
composer dump-autoload # 重新生成自动加载
composer show # 列出已安装的包
composer search 关键词 # 搜索包
composer outdated # 查看可更新的包
`
.gitignore 配置
``
/vendor/
composer.lock # 可选,库项目不提交,应用项目提交