hyperf 使用视图功能

今天试试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  [email protected]
 * @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

扫描二维码关注公众号,回复: 12771597 查看本文章

配置完成之后就是开始使用了,首先按照配置里面的目录创建文件夹 ,我在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就行了

猜你喜欢

转载自blog.csdn.net/weixin_42094764/article/details/113844232