vhraban/blade-string-renderer

关于此包最新版本(dev-master)的许可证信息不可用。

dev-master 2016-08-01 10:17 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:47:45 UTC


README

Blade模板引擎功能强大且易于使用,但缺乏灵活性。使用blade从字符串渲染模板是不可能的。其设计理念是每个模板都必须是文件系统上的物理文件,如果模板来自数据库或其他地方,那么几乎无法进行非侵入式的操作。

工作原理

它的工作方式相当简单。Blade-string-renderer扩展了Laravel的View Factory,可以像标准视图一样使用。主要区别是它有一个额外的功能,可以从模板字符串生成视图,而不是从模板文件。

Blade-string-renderer完全不侵入。它不干预Blade/Laravel的View Factory内部结构,而是提供了处理此类情况的最简单和最可能长期有效的方法。在视图渲染之前,模板内容(作为字符串传递)被保存到本地文件系统上的一个临时目录中。渲染器然后像往常一样使用存储在临时位置的blade模板继续工作。模板渲染后,临时文件被删除。这种方法虽然简单,但确保尽可能少地修改Laravel View Factory和Blade内部结构,为这样一个常见问题提供了一个健壮且松耦合的解决方案

使用方法

/**
 * @param BladeStringRenderer\BladeStringFactory $viewFactory
 */
public function __construct(BladeStringRenderer\BladeStringFactory $viewFactory)
{
    $this->viewFactory = $viewFactory;
}

/**
 * Render the template from the template string
 *
 * @param string $templateString
 * @param array $data
 *
 * @return string rendered template
 */
protected function buildFromTemplateString(string $templateString, array $data)
{
    return $this->viewFactory->makeFromTemplateString($templateString, $data)->render();
}

目前还没有测试

即将推出。由于Blade-string-renderer急需使用,因此尚未进行测试。