## 視圖前言
模板引擎有很多種,這里使用的是`laravel` 的模板引擎。
```
// 安裝laravel的blade模板引擎
composer require duncan3dc/blade
```
詳見:[duncan3dc/blade](https://packagist.org/packages/duncan3dc/blade)
## 創建視圖配置config/view.php
```
<?php
return [
// 模板緩存路徑
'cache_path' => FRAME_BASE_PATH . '/views/cache',
// 模板的根目錄
'view_path' => FRAME_BASE_PATH . '/views/'
];
```
## 創建接口 core/view/ViewInterface.php
```
<?php
namespace core\view;
interface ViewInterface
{
// 初始化模板
public function init();
// 解析模板模板
function render($path);
}
```
## laravel blade的實現 創建core/view/Blade.php
```
<?php
namespace core\view;
use duncan3dc\Laravel\BladeInstance;
class Blade implements ViewInterface
{
protected $template;
public function init()
{
$config = \App::getContainer()->get('config')->get('view'); // 獲取配置
// 設置視圖路徑 和 緩存路徑
// 用法見: duncan3dc/blade
$this->template = new BladeInstance($config['view_path'], $config['cache_path']);
}
// 傳遞路徑 和 參數
public function render($path, $params = [])
{
return $this->template->render($path, $params);
}
}
```
## 綁定服務 契約

## 視圖初始化

現在視圖已經完成了,接下來是運行下。
## 運行
### 創建views/blade/index.blade.php
```
<h2>{{ $str }}</h2>
@include('blade.footer')
```
### 創建views/blade/footer.blade.php
```
<h1> FOOTER </h1>
```
### 路由運行


- 前言
- 基礎篇
- 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