自动载入管理工具

介绍四种composer自动载入的方法

编程开发 2020-09-09 01:24:15 40

导读

composer自动载入的四种方式composer是PHP的包依赖管理工具,类似于node.js的npm。并非官方,但已经十分流行。对于第三方包的自动加载,composer提供里四种支持。分别是psr-0,psr-4,生成class-map,直接包含filespsr-0自动加载psr-1基本代码规范psr-2代码样式规范psr-3日志接口……

composer自动载入的四种方式

composer 是PHP的包依赖管理工具,类似于node.js的npm 。并非官方,但已经十分流行。

对于第三方包的自动加载,composer 提供里四种支持。分别是psr-0,psr-4,生成class-map,直接包含files

psr-0 自动加载

psr-1 基本代码规范

psr-2 代码样式规范

psr-3 日志接口

psr-4 自动加载

psr-0 与 psr-4的主要区别是 psr-4中下划线不做任何处理。psr-0中下划线会转义为目录分隔符

在主文件 index.php中编写

require 'vendor/autoload.php';

1.PSR-4

在composer.json中是这样配置的

{
  "aotuload":{
        "psr-4":{
            "FOO\\":"src/"
     }
  }
}

当在index.php中new FOO\A\A 这个类时。composer会去查找src/A/A.php.如果这位文件存在,则进行加载

2.PSR-0

在composer.json中是这样配置的

{
  "aotuload":{
        "psr-0":{
            "FOO\\":"src/"
     }
  }
}

当在index.php中new FOO\A\A 这个类时。composer会去查找src/FOO/A/A.php.如果这位文件存在,则进行加载

3.class-map

{
  "aotuload":{
       "class-map":['a/','b/','c/']
    }
}

composer 会扫描abc 目录下以.php或.inc结尾的class.并生产新的文件映射关系,放到/vendor/composer/aotuload_classmap

4.files

{
   "aotuload":{
       "files":["src/my/function.php"]
 }
}

手动指定供提供加载的文件。如全局的function文件


1253067 TFnetwork_cn