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文件