PHP:ThinkPHP使用Twig渲染html

简介: PHP:ThinkPHP使用Twig渲染html

此文是单独使用Twig渲染html的方法,用于邮件模板渲染。


如果需要整合到ThinkPHP渲染视图层的模板引擎,可参看

ThinkPHP6.0使用twig作为模板引擎及自定义过滤器


文档:


https://twig.symfony.com/doc/3.x/intro.html

安装

composer require "twig/twig:^3.0"

代码示例


<?php
namespace app\service;
use Twig\Environment;
use Twig\Loader\FilesystemLoader;
class TemplateService
{
    // 配置模板文件目录: app/template
    private static $template_dir = 'template';
    public static function render($name, array $context = [])
    {
        // 获取应用基础目录
        $absolute_template_dir = app()->getBasePath() . self::$template_dir;
        $loader = new FilesystemLoader($absolute_template_dir);
        $twig = new Environment($loader);
        return $twig->render($name, $context);
    }
}

测试


<?php
require_once __DIR__ . '/../../vendor/autoload.php';
((new \think\App())->http)->run();
use app\service\TemplateService;
use PHPUnit\Framework\TestCase;
class TemplateServiceTest extends TestCase
{
    /**
     * @doesNotPerformAssertions
     */
    public function testRender()
    {
        echo TemplateService::render('index.html', ['name'=> 'Tom']);
    }
}

模板文件:app/template/index.html

<!DOCTYPE html>
<html lang="en">
<body>
    {{name}}
</body>
</html>

输出结果


<!DOCTYPE html>
<html lang="en">
<body>
    Tom
</body>
</html>

相关文章
|
29天前
|
前端开发
html渲染优先级
html渲染优先级
27 0
|
2月前
|
JavaScript 前端开发 容器
用HTML DOM实现有条件地渲染网页元素(上)
用HTML DOM实现有条件地渲染网页元素(上)
|
2月前
|
存储 JavaScript 前端开发
用HTML DOM实现有条件地渲染网页元素(下)
用HTML DOM实现有条件地渲染网页元素(下)
|
3月前
|
前端开发
html渲染优先级
html渲染优先级
31 2
|
2月前
|
消息中间件 NoSQL Go
PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践
【9月更文挑战第7天】在从 PHP 的 ThinkPHP 框架迁移到 Go 的 Gin 框架时,涉及 Redis 延时消息队列的技术实践主要包括:理解延时消息队列概念,其能在特定时间处理消息,适用于定时任务等场景;在 ThinkPHP 中使用 Redis 实现延时队列;在 Gin 中结合 Go 的 Redis 客户端库实现类似功能;Go 具有更高性能和简洁性,适合处理大量消息。迁移过程中需考虑业务需求及系统稳定性。
|
3月前
|
前端开发 网络安全 PHP
PHP代码审计之MVC与ThinkPHP简介
PHP代码审计之MVC与ThinkPHP简介
38 2
|
3月前
|
数据采集 JavaScript 数据挖掘
如何使用 PHP Simple HTML DOM Parser 轻松获取网页中的特定数据
本文介绍了使用PHP Simple HTML DOM Parser进行网页数据抓取的方法,尤其适用于从懂车帝二手车网站提取汽车品牌、价格和里程等关键信息。首先,安装并配置所需库,使用代理IP和设置cookie与useragent来模拟用户行为,避免被封。然后,通过编写PHP脚本,利用cURL获取网页内容,解析HTML并提取所需数据,最终将数据保存至CSV文件。文章强调了正确配置代理和用户代理的重要性,并提供了完整的PHP代码示例,以帮助读者理解和应用网页抓取技术。
如何使用 PHP Simple HTML DOM Parser 轻松获取网页中的特定数据
|
4月前
|
数据采集 缓存 自然语言处理
PHP将HTML标签转化为图片
通过这个方法,PHP后端能够实现将HTML内容转化为图片的功能。这种方式虽然牵涉到一些额外的安装和配置,但能够相对灵活且稳定地解冀转换需求,适用于需要在后端动态生成图片的场景。
178 1
|
3月前
|
前端开发 JavaScript 开发者
React Server Component 使用问题之为什么选择使用 React 官方的 renderToString 来渲染 HTML,如何解决
React Server Component 使用问题之为什么选择使用 React 官方的 renderToString 来渲染 HTML,如何解决
|
3月前
|
PHP
PHP——安装ThinkPHP框架报错
PHP——安装ThinkPHP框架报错
27 0