緊接着前面兩篇內容,本章開始敘述視圖模塊的集成。php
在laravel框架的視圖中,常常用到blade模板,經過其簡潔的語法和數據綁定方式,相對於直接嵌入html中開發簡直不要舒服太多。html
下面咱們進行引入,與其對應的組件是 illuminate/view,引入命令以下:laravel
composer require "illuminate/view":"*"
而後須要在入口文件 public/index.php 處,配置好如下幾點:segmentfault
完整操做代碼以下:app
<?php use Illuminate\Container\Container; use Illuminate\Events\EventServiceProvider; use Illuminate\Http\Request; use Illuminate\Routing\RoutingServiceProvider; use Illuminate\Database\Capsule\Manager; use Illuminate\Support\Fluent; use Illuminate\View\ViewServiceProvider; use Illuminate\Filesystem\FilesystemServiceProvider; //首頁入口 //調用自動加載文件 require __DIR__ . '/../vendor/autoload.php'; //實例化服務容器,對事件服務提供者及路由服務提供者進行註冊 $app = new Container; with(new EventServiceProvider($app))->register(); with(new RoutingServiceProvider($app))->register(); //啓動 Eloquent ORM模塊進行配置 $dbManager = new Manager(); $dbManager->addConnection(require '../config/database.php'); $dbManager->bootEloquent(); //配置視圖儲存模塊 $app->instance('config', new Fluent); //設置編譯模板路徑 $app['config']['view.compiled'] = dirname(dirname(__FILE__)) . '/storage/framework/views'; //視圖路徑 $app['config']['view.paths'] = ['../resources/views/']; with(new ViewServiceProvider($app))->register(); with(new FilesystemServiceProvider($app))->register(); //加載路由配置 require __DIR__ . './../app/Http/routes/routers.php'; //實例化請求並分發處理請求 $request = Request::createFromGlobals(); $response = $app['router']->dispatch($request); //返回響應請求 $response->send();
配置完成後,開始編寫blade模板,在上面的配置中,將視圖存放路徑設置在框架下的resources/views/ 目錄下,咱們嘗試創建一個welcome.blade.phpcomposer
<h3>laravel blade 模板視圖</h3> 用戶ID:{{ $data['id'] }} <br/> 用戶暱稱:{{ $data['name'] }} <br/> 用戶帳號:{{ $data['account'] }} <br/>
而後再去更改首頁控制器(IndexController)的邏輯,咱們將數據返回到該視圖上。框架
<?php namespace App\Http\Controllers; use App\User; use Illuminate\Container\Container; class IndexController { public function index() { $user = User::find(1); //拿到服務容器示例 $app = Container::getInstance(); //建立視圖工廠視圖 $view = $app->make('view'); //建立視圖示例 return $view->make('welcome')->with('data', $user); } }
經過以上的幾個博客的幾個步驟,一個簡單的仿Laravel框架就完成了,集成了MVC的基本功能,從路由->控制器->模型->視圖,應有就有,省去了咱們反覆造輪子的大量時間。ide