本文目录导读:

我来详细解释PHP依赖管理的几种方式:
Composer - 最主流的依赖管理工具
安装 Composer
# 下载安装
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
# 全局安装
mv composer.phar /usr/local/bin/composer
基本使用流程
创建 composer.json
{
"name": "your/project",
"description": "项目描述",
"require": {
"php": ">=7.4",
"monolog/monolog": "^2.0",
"guzzlehttp/guzzle": "^7.0"
},
"require-dev": {
"phpunit/phpunit": "^9.0"
}
}
安装依赖
# 安装所有依赖 composer install # 添加新依赖 composer require monolog/monolog # 添加开发依赖 composer require --dev phpunit/phpunit # 更新依赖 composer update # 更新特定依赖 composer update monolog/monolog
自动加载示例
<?php
require 'vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$log = new Logger('name');
$log->pushHandler(new StreamHandler('app.log', Logger::WARNING));
$log->warning('This is a warning');
其他依赖管理方式
PEAR (较老)
# 安装PEAR
php -r "readfile('http://pear.php.net/go-pear.phar');" | php
# 安装包
pear install Package_Name
手动管理 (不推荐)
直接下载库文件并手动包含:
require_once 'lib/some_library.php'; require_once 'lib/another_library.php';
常见依赖管理场景
版本约束
{
"require": {
"vendor/package": "1.0.0", // 精确版本
"vendor/package": ">=1.0", // 大于等于
"vendor/package": "~1.2", // 兼容版本(1.2.x)
"vendor/package": "^1.2", // 兼容版本(>=1.2 <2.0)
"vendor/package": "1.*", // 通配符
"vendor/package": "1.0 || 2.0" // 多个版本
}
}
私有包引用
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/your/private-repo.git"
}
],
"require": {
"your/private-package": "dev-main"
}
}
最佳实践
composer.json 完整示例
{
"name": "myapp/project",
"type": "project",
"require": {
"php": "^8.0",
"laravel/framework": "^10.0",
"doctrine/dbal": "^3.0"
},
"require-dev": {
"phpunit/phpunit": "^10.0",
"mockery/mockery": "^1.0",
"squizlabs/php_codesniffer": "^3.0"
},
"autoload": {
"psr-4": {
"App\\": "src/"
},
"files": [
"app/helpers.php"
]
},
"scripts": {
"test": "phpunit",
"lint": "phpcs",
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump"
]
},
"config": {
"optimize-autoloader": true,
"preferred-install": "dist"
}
}
composer init # 初始化项目 composer install # 安装依赖 composer update # 更新依赖 composer require pack # 添加依赖 composer remove pack # 移除依赖 composer show # 查看依赖 composer outdated # 检查过期包 composer audit # 安全审计 composer dump-autoload # 重新生成自动加载
常见问题解决
权限问题
composer install --no-dev # 生产环境 composer install -o # 优化自动加载
缓存清理
composer clear-cache composer install --no-cache
中国镜像加速
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
使用 Composer 是现代 PHP 开发的标配,建议掌握其基本用法和常见场景。