php配置样式自动加载,PHP 自动加载原理之 composer 自动加载配置

借助 composer 实现自动加载,可以在 composer.json 中配置 autoload 字段。

当前支持 psr-0 ,psr-4 ,classmap ,file 四种自动加载模式。推荐使用 psr-4 。

psr-4

psr-4 设置的是命名空间和路径的映射。{

"autoload": {

"psr-4": {

"Monolog\\": "src/",

"Vendor\\Namespace\\": "",

"Goods\\":"src/"

}

}

}

一个命名空间可以映射到多个目录,后面可以传入数组。{

"autoload": {

"psr-4": {

"Monolog\\": ["src/", "lib/"]

}

}

}

后面设置的路径是相对于 composer.json 文件设置的一个相对目录。

以上配置的意思是:当我们加载 Monolog\Logger 这个类的时候,要找的文件是 src/Logger.php 。规则是类前面和psr-4 匹配的部分对应一个物理路径,后面的部分加上文件后缀作为第二部分。把两部分组合起来拼接成这个类的真实物理路径。

前面的命名空间可以留空,这样在前面的匹配都没找到这个类的情况下,会在后面的路径里面查找。

psr-4 的对应结果会存在 vendor/composer/autoload_psr4.php 中。

psr-0

psr-0 的设置格式和 psr-4 基本一样。

他们的不同之处在于 psr-0 的文件路径需要包含前缀。也就是 Monolog\Logger 对应的文件是 Monolog/Monolog/src/Logger.php 并且类名中带有下横线的时候会转变成目录分隔符。

classmap

classmap 参数类型是数组,里面直接填目录名或者具体的php路径。{

"autoload": {

"classmap": ["src/", "lib/", "Something.php"]

}

}

composer dumpautoload 之后,系统会在 vendor/composer/autoload_classmap.php 中存储一个类和文件路径的对应关系。

files

明确指定需要加载哪个文件。vendor/composer/autoload_files.php 中会储存对应结果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值