首页 > 后端开发 > php教程 > 如何在 Laravel 中从字符串编译 Blade 模板?

如何在 Laravel 中从字符串编译 Blade 模板?

Linda Hamilton
发布: 2024-10-22 13:07:03
原创
1019 人浏览过

How to Compile Blade Templates from Strings in Laravel?

从字符串编译刀片模板

可以从字符串编译刀片模板,而不是依赖视图文件。为此,您可以扩展现有的 BladeCompiler 类并实现自定义方法。

扩展 BladeCompiler 类

<code class="php">namespace Laravel\Enhanced;

use Illuminate\View\Compilers\BladeCompiler as LaravelBladeCompiler;

class BladeCompiler extends LaravelBladeCompiler {

    /**
     * Compile blade template with passing arguments.
     *
     * @param string $value HTML-code including blade
     * @param array $args Array of values used in blade
     * @return string
     */
    public function compileWiths($value, array $args = array())
    {
        $generated = parent::compileString($value);

        ob_start() and extract($args, EXTR_SKIP);

        // Include view contents for parsing within a catcher
        try
        {
            eval('?>'.$generated);
        }

        // Silent flush output buffer in case of exception
        catch (\Exception $e)
        {
            ob_get_clean(); throw $e;
        }

        $content = ob_get_clean();

        return $content;
    }

}</code>
登录后复制

用法

您可以使用扩展的compileWiths方法从字符串编译刀片模板:

<code class="php">$string = '<h2>{{ $name }}</h2>';
$compiled = BladeCompiler::compileWiths($string, array('name' => 'John Doe'));
echo $compiled;</code>
登录后复制

以上是如何在 Laravel 中从字符串编译 Blade 模板?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板