strakez/betterblade

为旧版本Laravel提供Laravel 9的Blade::render功能的移植

dev-main 2022-02-16 00:12 UTC

This package is auto-updated.

Last update: 2024-09-16 05:27:21 UTC


README

将Laravel 9的行内Blade渲染功能移植用于旧版本的Laravel。目前此版本仅支持v7.0及以上。

请注意,此包是为那些尚未准备好将项目升级到Laravel 9但希望使用行内渲染的用户准备的。然而,如果您有时间和资源,我建议安装/升级到Laravel 9,而不是使用此包。(有更多可供选择!)

安装

使用Composer

composer require strakez/betterblade

设置/发现

安装后,应自动发现包设置。如果没有,您可以执行以下步骤之一

通过脚本设置

手动运行自动发现脚本

php artisan package:discover

通过配置文件设置

请手动在您的config/app.php文件中包含以下两行

  • 在“自动加载服务提供者”下
BetterBlade\BetterBladeServiceProvider::class
  • 在“类别名”下
'BetterBlade'   =>  BetterBlade\BetterBladeFacade::class,

用法

使用门面BetterBlade::render()将行内模板作为字符串渲染。

$inlineTemplate = "Hello {{ $place }}. Wassup {{ $otherPlace }}!";

$replacementVariables = [
    'place' => "World",
    'otherPlace' => "Universe"
];

$string = BetterBlade::render($inlineTemplate, $replacementVariables);

echo $string;
// Hello World. Wassup Universe!

这遵循了Laravel 9中的用法和功能。更多关于此信息,请访问https://laravel.net.cn/docs/9.x/blade#rendering-inline-blade-templates

替代用法/补丁

由于BetterBlade编译器扩展了核心Blade编译器,因此可以在保持现有功能的同时,用BetterBlade覆盖Blade门面。为此,在config/app.php文件中注释掉默认引用,并添加以下内容

//'Blade' => Illuminate\Support\Facades\Blade::class,
'Blade' => BetterBlade\BetterBladeFacade::class,

然后,用法如下

$string = Blade::render($inlineTemplate, $replacementVariables);

此方法用于将行内渲染功能补丁到现有门面中,理想情况下减少未来迁移到Laravel 9+时的代码更改。然而,有些人可能会选择将此功能与默认用法分开,因此选择权在您手中。