## spl_autoload_register 作用演示


`spl_autoload_register`: 如果類找不到,將會調用此函數。
可以看到,他調用了`spl_autoload_register` 函數。
## 其他語言
`go` `python` `js`...... 那些,天天 `import`。
累不累? 果然 `php` 是世界上最好...
## 自己實現自動加載
```
spl_autoload_register(function($class){
// $class 是App\User
$psr4 = [
"App" => "app"
];
$suffix = '.php'; // 后綴
foreach($psr4 as $name => $value) // 如果是psr4替換
$class = str_replace($name,$value,$class);
// $class 現在是 app\User
include($class . $suffix);
});
```

## 結尾
`php` 自動加載 = `spl_autoload_register` + `include`。
推薦用 `composer` 官方 `自動加載`,自己實現: 畢竟是野路子,沒有那么完善。
用官方很簡單,官方的`autoload.php`已實現了 `自動加載` ,都是一樣的原理。
```
require __DIR__.'/../vendor/autoload.php'
```
- 前言
- 基礎篇
- 1. 第一步 創建框架目錄結構
- 2. 引入composer自動加載
- 3. php自動加載 (解釋篇)
- 4. 創建容器 注冊樹模式
- 5. 關于psr規范解釋
- 6. 關于"容器" "契約" "依賴注入" (解釋篇)
- 7. 添加函數文件helpers.php
- 8. 初始化請求(Request)
- 9. 響應 (Response)
- 10. 路由一 (路由組實現)
- 11. 路由二 (加入中間件)
- 12. 配置信息 (類似laravel)
- 13. 數據庫連接 (多例模式)
- 14. 查詢構造器 (query builder)
- MVC實現
- M 模型實現 (數據映射 + 原型 模式)
- C 控制器實現 + 控制器中間件
- V 視圖實現 (Laravel Blade 引擎)
- V 視圖切換成 ThinkPhp 模板 引擎)
- 其他輪子
- 日志
- 自定義異常 (異常托管)
- 單元測試 (phpunit)
- 替換成swoole的http服務器
- 協程上下文解決request問題
- qps測試
- 發布到packagist.org