💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
[TOC] ### 模板引擎 rapphp 不自带模板引擎,如果你需要使用模板引擎,但是 rapphp可以和其他模板引擎搭配使用; ### 控制器里的写法 方法最后返回一个字符串就可以了, 正常是模板文件的相对路径 ~~~ class TestController { public function test() { $response=response(); $response->assign('title', '网页标题'); $response->assign('data1', '数据1'); $response->assign('data2', '数据2'); return '/a/index'; } } ~~~ ### 使用 Twig模板引擎 很多模板引擎的实现和 swoole是不兼容的(变量被注册到了全局),特别是国内常用的 smarty 是不能使用的. 这里推荐使用 twig 模板引擎,写法简单,拓展强,和 swoole兼容 官网 [https://twig.symfony.com/](https://twig.symfony.com/) 中文文档 [https://www.kancloud.cn/yunye/twig-cn/159454](https://www.kancloud.cn/yunye/twig-cn/159454) #### 实现View接口 ~~~ class TwigView implements View { private $twig; public function __construct($config) { $loader = new \Twig_Loader_Filesystem(ROOT_PATH); $this->twig = new \Twig_Environment($loader); //这里对twig进行初始化配置 } public function fetch($tpl, $data) { //这里写你的实现 return "html";//返回html文本 } } ~~~ 需要实现fetch方法 $tpl 你代码返回的字符串 正常是模板文件的相对路径 $data 你代码需要渲染的数据数组 对照上面的例子 ~~~ $tpl='/a/index'; $data=['title'=>'网页标题','data1'=>'数据1','data2'=>'数据2']; ~~~ 最后记得返回你的 html 文本就可以了 #### View注册 ~~~ class AppInit implements Init { public function appInit(AutoFindHandlerMapping $autoMapping, Router $router) { Ioc::bind(View::class,TwigView::class); } } ~~~