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/guzzleHTTP 客户端
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 # 可选,库项目不提交,应用项目提交