构造一个仿Laravel Mvc框架 - 视图(View)

紧接着前面两篇内容,本章开始叙述视图模块的集成。

在laravel框架的视图中,经常用到blade模板,通过其简洁的语法和数据绑定方式,相对于直接嵌入html中开发简直不要舒服太多。

下面我们进行引入,与其对应的组件是 illuminate/view,引入命令如下:

composer require "illuminate/view":"*" 

然后需要在入口文件 public/index.php 处,配置好以下几点:

  1. blade模板编译路径
  2. 视图存放路径
  3. 对视图服务及文件服务进行注册

完整操作代码如下:

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.php

laravel blade 模板视图

用户ID:{{ $data['id'] }}
用户昵称:{{ $data['name'] }}
用户账号:{{ $data['account'] }}

然后再去更改首页控制器(IndexController)的逻辑,我们将数据返回到该视图上。

make('view');
        //创建视图示例
        return $view->make('welcome')->with('data', $user);
    }
}

通过以上的几个博客的几个步骤,一个简单的仿Laravel框架就完成了,集成了MVC的基本功能,从路由->控制器->模型->视图,应有就有,省去了我们反复造轮子的大量时间。

你可能感兴趣的:(laravel,php,mvc,视图,php框架)