紧接着前面两篇内容,本章开始叙述视图模块的集成。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