strakez / betterblade
为旧版本Laravel提供Laravel 9的Blade::render功能的移植
dev-main
2022-02-16 00:12 UTC
Requires
- php: >=7.1
- illuminate/container: ^7.0|^8.0
- illuminate/contracts: ^7.0|^8.0
- illuminate/support: ^7.0|^8.0
- illuminate/view: ^7.0|^8.0
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+时的代码更改。然而,有些人可能会选择将此功能与默认用法分开,因此选择权在您手中。