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