今天试试hyperf的视图功能
首先看文档,需要安装hyperf/view组件,composer require hyperf/view.报了个错,说是其他组件版本太低无法安装,因为我自己下的是hyperf2.0的版本,目前已经是2.1的版本,那么安装官方文档的说明更新一下。https://hyperf.wiki/2.1/#/zh-cn/upgrade/2.1?id=%e4%bf%ae%e6%94%b9-hyperf-%e7%bb%84%e4%bb%b6%e7%89%88%e6%9c%ac
升级版本很简单,直接将 composer.json
中的 hyperf/*
统一修改为 2.1.*
即可。
修改完之后执行 composer update -o,升级到2.1成功
然后重新
composer require hyperf/view ,ok安装成功,接下来是配置,还是按文档操作。php bin/hyperf.php vendor:publish hyperf/view
好的,在config/autoload 下面就生成了view.php
打开之后进行配置
<?php
declare(strict_types=1);
/**
* This file is part of Hyperf.
*
* @link https://www.hyperf.io
* @document https://doc.hyperf.io
* @contact group@hyperf.io
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
*/
return [
'engine' => Hyperf\ViewEngine\HyperfViewEngine::class,
'mode' => Hyperf\View\Mode::SYNC,
'config' => [
'view_path' => BASE_PATH . '/storage/view/',
'cache_path' => BASE_PATH . '/runtime/view/',
],
];
配置好了,这里的话由于引擎需要自己安装所以,配置之前还得安装相应组件 composer require hyperf/view-engine
配置完成之后就是开始使用了,首先按照配置里面的目录创建文件夹 ,我在storage/view/index 目录下新建了一个test.blade.php
内容如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hyperf</title>
</head>
<body>
@foreach($data as $v)
{{$v}}
@endforeach
</body>
</html>
然后在IndexController,里面通过$render 函数渲染页面并返回,注意这里一定要先在index()里面注入 RenderInterface $render
public function index(RenderInterface $render)
{
// var_dump($this->calculatorService->add(1,2));
$user = $this->request->input('user', 'Hyperf');
$method = $this->request->getMethod();
$arr = ["哈哈","嘿嘿","嚯嚯"];
return $render->render('index.test', ['data' => $arr]);
}
好,然后在route里面配置路由
Router::addRoute(['GET', 'POST', 'HEAD'], '/', 'App\Controller\IndexController@index');
启动hyperf就行了