php之composer-composer.json参数autoload详解
简介
Composer 是 PHP 的⼀个依赖管理⼯具。它允许你申明项⽬所依赖的代码库,它会在你的项⽬中为你安装他们。
对于类库的⾃动加载,Composer ⽣成了⼀个 vendor/autoload.php ⽂件。引⼊这个⽂件,就能得到⼀个免费的⾃动加载⽀持,这种感觉真是棒极了~
本⽂主要是介绍如何利⽤ Composer ⾃带的⾃动加载机制,加载本地⾃定义的包(即不是来⾃于 packagist)。
使⽤
1. 在 composer.json ⽂件中的 autoload 字段中添加⾃⼰的 autoloader。
⽬前 Composer ⽀持四种⾃动加载映射的⽅式:
PSR-0 autoloading
PSR-4 autoloading
classmap generation
files
下⾯只介绍 PSR-4,为什么?因为它⾜够⽅便好⽤(当你添加类时不需要重新⽣成 autoloader)。详细请查看 ⾃动加载 - 参考。
PSR-4(推荐)
{
"autoload": {
"psr-4": {
"First\\": "src/",
"Temp\\": "lib/"
}
}
}
上⾯的代码采⽤ PSR-4 规范,该规范包含了 PHP 最新的⾃动加载标准,它要求必须使⽤ namespace (命名空间)的⽅式。
First\\ 表⽰命名空间,必须以 \\ 结尾,避免相似的命名空间导致冲突,若包含⼦命名空间,可以这样表⽰:First\\Second\\。
src/ 表⽰命名空间所在⽬录为与 Composer 的 vendor ⽬录同级的 src ⽬录,如下所⽰:
根⽬录
├─src/  (First/)
│├─Curl.php
├─vendor/
│├─autoload.php
├─composer.json
├─composer.lock
├─index.php
如果需要在多个⽬录下搜索相同的命名前缀,可以⽤⼀个数组提供:
{
"autoload": {
"psr-4": {
"First\\": ["src/","lib/"]
}
国内php空间
}
}
2. 修改完composer.json的autoload字段后需要更新⼀下 Composer 的⾃动加载类:composer dumpautoload -o
3. 被调⽤⽂件和调⽤⽂件⽰例
被调⽤⽂件 Curl.php 的命名空间如下表⽰:
<?php
namespace First;
class Curl
{
}
index.php ⽂件中调⽤ Curl.php 的⽅式如下:
<?php
require'../vendor/autoload.php';
use First\Curl;
$curl=new Curl();

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。