johnturingan / laravel-fly-view
将字符串标记渲染为Blade模板。
1.2.0
2020-04-06 20:31 UTC
This package is not auto-updated.
Last update: 2024-09-17 17:43:18 UTC
README
是Laravel视图类的扩展,可以动态编译字符串模板。它会自动检测字符串模板的变化,并在需要时重新编译。
如果您想渲染来自其他来源(如CMS或第三方API)的模板,这将非常有用。
因为它扩展了Laravel视图类,所以它不会干扰您的应用程序的正常流程。您仍然可以像平常一样使用Laravel视图,但可以传递字符串模板。
它支持所有Blade模板指令。
支持Laravel 5.2+
安装 🚥
将包添加到您的composer.json中
"require": {
...
"johnturingan/laravel-fly-view": "{version}"
},
或者直接运行composer require
$ composer require johnturingan/laravel-fly-view
在config/app.php中替换
Illuminate\View\ViewServiceProvider::class
为
Snp\FlyView\Providers\ViewServiceProvider::class
使用 ✅
常规使用
使用点表示法在第一个参数中传递blade文件路径
return view('path.to.view', []);
Flyview使用
在第一个参数中传递字符串数组
return view([ 'String Template with {{$blade}} syntax and @directives' ], []);
或者您也可以这样做
return view([
'{{ $token }}',
'{{ $me }}'
], [
'token' => Str::uuid(),
'me' => 'Laravel Fly View'
]);
Flyview将在编译前合并数组中的所有字符串。如果您有多个模板来源,这将非常有用。
您还可以像这样使用响应助手中的if。
return response()->view([
'{{ $token }}',
'{{ $me }}'
], [
'token' => Str::uuid(),
'me' => 'Laravel Fly View on Response Helper'
]);
正如我之前所说的,它不会干扰Laravel视图的常规流程。这意味着您可以这样做。
$bag = [
'include' => [
'{{ $token }} - This is FlyView Include',
'@include("includes.nativeInclude") <br/> Above is Include Inception'
],
'data' => [ 'token' => Str::uuid() ]
];
return view('includeTest', $bag);
在您的includeTest.blade.php文件中是这样的
@include('includes.nativeInclude', $data)
@include($include, $data)
将字符串模板包含到blade模板文件中是可能的。
配置 📄
所有配置与您的配置文件夹中的默认视图配置相同,另外还有一个用于最小化视图内容的设置。默认为false。
/*
|--------------------------------------------------------------------------
| Minify View Content
|--------------------------------------------------------------------------
|
| This option determines whether or not you want to minify view contents.
| It removes unnecessary whitespace
|
*/
'minify' => false
注意
如果您发现任何错误或您有改进这个项目的想法,请随时在GitHub上提交评论。
如果您觉得这个包很有帮助,一个简单的星标会非常感激。
MIT 许可证
版权 © 2018 Scripts and Pixels。