php view 视图 mvc,构造一个仿Laravel Mvc框架 - 视图(View)

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

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

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

然后需要在入口文件 public/index.php 处,配置好以下几点:blade模板编译路径

视图存放路径

对视图服务及文件服务进行注册

完整操作代码如下:<?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.php

laravel blade 模板视图

用户ID:{{ $data['id'] }}

用户昵称:{{ $data['name'] }}

用户账号:{{ $data['account'] }}

然后再去更改首页控制器(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的基本功能,从路由->控制器->模型->视图,应有就有,省去了我们反复造轮子的大量时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值