紧接前两篇文章,本章开始讲述视图模块的集成。构造一个类Laravel的Mvc框架-路由构造一个类Laravel的Mvc框架-模型在laravel框架看来,经常会用到blade模板。通过其简洁的语法和数据绑定方式,直接用html开发也不太舒服。接下来我们介绍一下,对应的组件是illuminate/view,导入命令如下:composerrequire"illuminate/view":"*"那么需要在入口文件public/index.php配置如下几点:bladetemplate编译路径视图存储路径注册视图服务和文件服务完整的操作代码如下:Database\Capsule\Manager;useIlluminate\Support\Fluent;useIlluminate\View\ViewServiceProvider;useIlluminate\Filesystem\FilesystemServiceProvider;//Home页面入口//调用自动加载文件需要__DIR__。'/../vendor/autoload.php';//实例化服务容器并注册事件服务提供者和路由服务提供者$app=newContainer;with(newEventServiceProvider($app))->register();with(newRoutingServiceProvider($app))->register();//启动EloquentORM模块进行配置$dbManager=newManager();$dbManager->addConnection(require'../config/database.php');$dbManager->bootEloquent();//配置视图存储模块$app->instance('config',newFluent);//设置编译模板路径$app['config']['view.compiled']=dirname(dirname(__FILE__)).'/storage/framework/views';//视图路径$app['config']['view.paths']=['../resources/views/'];with(newViewServiceProvider($app))->register();with(newFilesystemServiceProvider($app))->register();//加载路由配置require__DIR__.'./../app/Http/routes/routers.php';//实例化请求并分发处理请求$request=Request::createFromGlobals();$response=$app['router']->dispatch($request);//返回响应请求$response->send();配置完成后,开始编写刀片模板。在上面的配置中,在framework下的resources/views/目录下设置视图存放路径。我们尝试创建一个welcome.blade.php
laravelblade模板视图
用户ID:{{$data['id']}}用户昵称:{{$data['name']}}
用户账号:{{$data['account']}}
然后去改变首页控制器(IndexController)的逻辑,我们把数据返回给视图make('view');//创建视图示例return$view->make('welcome')->with('data',$user);}}通过上面几篇博客的步骤,完成了一个简单的仿Laravel框架,集成了MVC的基本功能,从路由->控制器->模型->视图,应该有的话,为我们节省了很多时间重新发明轮子。