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。