##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>