##1.自动加载 引入composer的自动加载文件,那么使用composer下载的项目就会被自动加载,不能更爽了。 ##2.使用composer自动加载来加载自己的php代码 项目开发的时候,免不了有一些自己写的类库、全局函数等,那如何将他们也添加到composer的自动加载里面呢? composer一个支持四种方式自动加载自己的php代码,每种方式适合不同的场景。 ###2.1 PSR-4 php5.3+以上的,而且php类库必须班组PSR-4的规范 composer.json同级目录src下的所有命名空间为Monolog的PSR-4类库,即src下的Monolog\XXX.php和任意目录下的Vendor\Namespace\XXX.php类库: ``` { "autoload": { "psr-4": { "Monolog\\": "src/", "Vendor\\Namespace\\": "" } } } ``` 目录是多个的时候,可以采用数组: ``` { "autoload": { "psr-4": { "Monolog\\": ["src/", "lib/"] } } } ``` src目录下的任何命令空间都取: ``` { "autoload": { "psr-4": { "": "src/" } } } ``` ###2.2 PSR-0 对于使用PSR-0规范创建的php类库,可以使用PSR-0标准进行进行字段加载 ``` { "autoload": { "psr-0": { "Monolog\\": "src/", "Vendor\\Namespace\\": "src/", "Vendor_Namespace_": "src/" } } } ``` ###2.3 classmap 你可以用 classmap 生成支持支持自定义加载的不遵循 PSR-0/4 规范的类库。要配置它指向需要的目录,以便能够准确搜索到类文件。 ``` { "autoload": { "classmap": ["src/", "lib/", "Something.php"] } } ``` ###2.4 files 如果你想要明确的指定,在每次请求时都要载入某些文件,那么你可以使用 'files' autoloading。通常作为函数库的载入方式(而非类库)。 ``` { "autoload": { "files": ["src/MyLibrary/functions.php"] } } ``` 关于PHP的这四种自动加载规范,请移步到:[https://github.com/PizzaLiu/PHP-FIG](https://github.com/PizzaLiu/PHP-FIG) <br><br><br><br><br>