Composer 是 PHP 的标准依赖管理器——它安装并管理第三方包(库、框架)并提供自动加载功能,使类可以自动加载而无需手动 require 语句。它是所有现代 PHP 开发的核心。
管理依赖
composer require guzzlehttp/guzzle
composer install
composer update
// composer.json — declares your project's dependencies
{
"require"
composer.json 声明依赖项(带版本约束)和自动加载配置。composer.lock 文件锁定确切版本(提交它以确保团队和生产环境中可重现的安装——如同其他锁定文件)。
<?php
require "vendor/autoload.php"; // include the autoloader ONCE (bootstraps everything)
$user = new App\Models\User(); // App\Models\User loaded AUTOMATICALLY from src/Models/User.php
$client = new GuzzleHttp\Client(); // package classes load automatically too
// NO manual require for each class!
使用一行 require "vendor/autoload.php",Composer 的自动加载器在第一次使用类时按需加载它——将类的命名空间映射到文件路径(PSR-4)并自动包含它。这取代了过去繁琐的手动 require 每个类文件的做法。
Namespace prefix "App\" → directory "src/"
Class App\Models\User → file src/Models/User.php
Class App\Services\Mailer → file src/Services/Mailer.php
→ The autoloader resolves the class name to a path and includes it. No config per class.
composer dump-autoload -o # generate an OPTIMIZED classmap for production (faster)
Composer 是现代 PHP 的基础——它是几乎所有 PHP 项目管理依赖和加载类的方式,因此理解它对任何当代 PHP 开发都是必要的。
it 的两个角色都很关键:作为依赖管理器,它安装并版本管理第三方包和框架(Laravel、Symfony、Guzzle 等),这些是实际应用程序所依赖的,composer.json 声明依赖项,composer.lock 确保可重现的安装(像任何锁定文件一样提交它,以确保团队和生产环境中的版本一致)。
作为自动加载器,它消除了过去容易出错的手动 require 每个类文件的做法——相反,一行 require "vendor/autoload.php" 使类能够通过 PSR-4(将命名空间映射到目录)按需自动加载。
这种自动加载与命名空间相结合,是现代 PHP 项目结构的基础。
由于没有 Composer 就无法使用任何现代 PHP 框架或包,并且由于自动加载是所有现代 PHP 代码的组织和加载方式,理解 Composer(管理依赖、锁定文件、PSR-4 自动加载和 vendor/autoload.php 引导)是不可或缺的、每日的必需知识,用于专业 PHP 开发——它对 PHP 的重要程度就如同 npm 对 Node.js 的重要程度一样。