使用 Composer 自动加载
虽然 composer 提供了一个管理 PHP 项目依赖关系的系统(例如来自 Packagist ),但它也可以作为自动加载器,指定在哪里查找特定的命名空间或包含通用函数文件。
它以 composer.json
文件开头:
{
// ...
"autoload": {
"psr-4": {
"MyVendorName\\MyProject": "src/"
},
"files": [
"src/functions.php"
]
},
"autoload-dev": {
"psr-4": {
"MyVendorName\\MyProject\\Tests": "tests/"
}
}
}
此配置代码确保命名空间 MyVendorName\MyProject
中的所有类都映射到 src
目录,并将 MyVendorName\MyProject\Tests
中的所有类映射到 tests
目录(相对于你的根目录)。它还会自动包含文件 functions.php
。
将其放入 composer.json
文件后,在终端中运行 composer update
,让作曲家更新依赖项,锁定文件并生成 autoload.php
文件。部署到生产环境时,你将使用 composer install --no-dev
。autoload.php
文件可以在 vendor
目录中找到,该目录应该在 composer.json
所在的目录中生成。
你应该在应用程序生命周期的设置点使用类似下面的行来提前知道此文件。
require_once __DIR__ . '/vendor/autoload.php';
一旦包含,autoload.php
文件负责加载你在 composer.json
文件中提供的所有依赖项。
目录映射的类路径的一些示例:
MyVendorName\MyProject\Shapes\Square
➔src/Shapes/Square.php
。MyVendorName\MyProject\Tests\Shapes\Square
➔tests/Shapes/Square.php
。