snicco/blade-bridge

在WordPress中使用Laravel的Blade模板引擎v8.x。已全面测试,可用于生产环境。

v2.0.0-beta.9 2024-09-07 14:27 UTC

README

codecov Psalm Type-Coverage Psalm level PhpMetrics - Static Analysis PHP-Versions

此包允许在不使用全栈Laravel框架的情况下使用blade模板引擎

100%经过测试,全面支持blade的所有功能,包括视图编译器。

必须与此包一起使用snicco/templating

安装

composer require snicco/blade-bridge

使用

创建一个BladeViewFactory

要开始使用snicco/templating的模板引擎渲染.blade.php视图,我们需要创建一个BladeViewFactory并将其传递给模板引擎。

use Snicco\Bridge\Blade\BladeStandalone;
use Snicco\Bridge\Blade\BladeViewFactory;
use Snicco\Component\Templating\Context\ViewContextResolver;
use Snicco\Component\Templating\TemplateEngine;

/**
* @var ViewContextResolver $view_context_resolver
*/
$view_context_resolver = /* Check the documentation of snicco/templating */

$blade = new BladeStandalone(
    __DIR__.'/cache/blade', // directory path for the compiled templates
    [
       __DIR__.'/views',
       __DIR__.'/templates',
    ], // An array of directories where views are located
    $view_context_resolver
);


$blade->boostrap();

/**
* @var BladeViewFactory
*/
$blade_view_factory = $blade->getBladeViewFactory();

$template_engine = new TemplateEngine(
    $blade_view_factory
);

现在您可以使用模板引擎渲染任何.blade.php视图。

Blade功能

可以使用blade 8.x的所有功能。请参阅文档

默认情况下,此包禁用了某些指令,当使用这些指令时将抛出异常,因为它们与Laravel的全局辅助函数未解耦。

您可以通过使用Blade::directive()来使用自己的实现重新启用它们。

以下指令被禁用

  • auth
  • guest
  • method
  • csrf
  • service
  • env
  • production
  • can
  • cannot
  • canany
  • dd
  • dump
  • lang
  • choice
  • error
  • inject

贡献

此存储库是Snicco项目的开发仓库的只读分支。

以下是您如何进行贡献.

报告问题和发送pull请求

请将问题报告在Snicco monorepo中。

安全性

如果您发现了一个安全漏洞,请按照我们的披露程序操作。