Composer 入门:PHP 依赖管理实战
写 PHP 不引入现成的库,等于每个轮子都自己造。Composer 就是 PHP 的包管理器,一条命令装好依赖,代码里自动加载,随时能用。
安装 Composer
Windows 直接下载 Composer-Setup.exe 安装;Linux 一条命令:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
mv composer.phar /usr/local/bin/composer
composer --version国内服务器建议换国内镜像,下载快很多:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/引入第一个依赖
项目目录执行:
composer require guzzlehttp/guzzleGuzzle 是 HTTP 客户端库,用它发请求比手写 curl 舒服。装完目录里多了 vendor/ 文件夹和两个文件:composer.json(依赖清单)、composer.lock(锁定精确版本)。
使用:autoload 自动加载
在入口文件引入 autoload,之后所有依赖库的类直接用,不用手动 require:
require __DIR__ . "/vendor/autoload.php";
$client = new GuzzleHttpClient();
$resp = $client->get("https://api.github.com/repos/guzzle/guzzle");
echo $resp->getBody()->getContents();composer.json 的几个常用操作
| 命令 | 作用 |
|---|---|
composer require 包名 | 安装依赖并写入 composer.json |
composer install | 按 composer.lock 安装(部署时用) |
composer update | 更新依赖到最新允许版本 |
composer remove 包名 | 移除依赖 |
部署到服务器用 composer install --no-dev --optimize-autoloader,不带开发环境依赖,自动加载也更快。
自己项目的类怎么自动加载
在 composer.json 里注册自己的命名空间:
{
"autoload": {
"psr-4": {
"App\": "src/"
}
}
}然后执行 composer dump-autoload。之后 src/User.php 里定义 namespace App;,任何地方 new AppUser() 都能直接用。
Composer 没什么学习曲线,核心就是"装包、用类、记版本"。真正要留意的是别把 vendor 提交进 Git 仓库(加到 .gitignore),部署时在服务器上重新 install 就行。