beebmx/kirby-blade
Kirby 3 & 4 的 Blade 模板
Requires
- php: ^8.2
- beebmx/blade: ^1.8
- getkirby/composer-installer: ^1.2
- illuminate/view: ^10.0|^11.0
- ramsey/uuid: ^4.7
Requires (Dev)
- getkirby/cms: ^4.3
- laravel/pint: ^1.16
README
Kirby Blade 使用 Laravel 的 illuminate/view
和 jenssegers/blade
包。
此包为您的 Kirby 应用程序启用 Laravel Blade。
安装
使用 composer 安装
composer require beebmx/kirby-blade
什么是 Blade?
根据 Laravel Blade 文档,Blade 是
Blade 是 Laravel 提供的简单而强大的模板引擎。与其它流行的 PHP 模板引擎不同,Blade 允许你在视图中使用纯 PHP 代码。实际上,所有 Blade 视图都会被编译成纯 PHP 代码并缓存,直到它们被修改,这意味着 Blade 为你的应用程序增加了几乎零开销。Blade 视图文件使用 .blade.php 扩展名。
用法
你可以像使用 布局、子视图、指令、自定义的 If 语句 和 Blade 组件 一样使用 Blade 的功能。
有关 Laravel Blade 的所有文档都可以在 官方文档 中找到。
冲突
从 Kirby 3.7.0
开始,将 illuminate/support
的帮助器添加到你的 public
目录中的根 index.php
文件中非常重要。
const KIRBY_HELPER_E = false; // or define('KIRBY_HELPER_DUMP', false);
这一行应该在你的 autoload.php
文件之前。结果文件应该如下所示
<?php define('KIRBY_HELPER_DUMP', false); include '../vendor/autoload.php'; // ...
选项
该包的默认值如下
所有值都可以在 config.php
文件中更新。
视图
所有生成的视图都存储在 site/cache/views
目录或你定义的 cache
目录中,但你也可以轻松更改此设置
'beebmx.kirby-blade.views' => '/site/storage/views',
指令
默认情况下,Kirby Blade 包含以下指令
@js('js/app.js') @css('css/app.css') @kirbytext($page->text()) @kt($page->text()) @kirbytextinline($page->text()) @kti($page->text()) @smartypants($page->text()) @esc($string) @image($page->image()) @svg($file) @page($id) @pages($id) @markdown($page->text()) @html($page->text()) @h($page->text()) @url($page->url()) @u($page->url()) @go($url) @asset($page->image()) @translate($translation) @t($translation) @tc($translation, $count) @dump($variable) @csrf() @snippet($name, $data) @twitter($username, $text, $title, $class) @video($url) @vimeo($url) @youtube($url) @gist($url)
但你可以创建自己的
'beebmx.kirby-blade.directives' => [ 'greeting' => function ($text) { return "<?php echo 'Hello: ' . $text ?>"; } ],
如果语句
与指令类似,你可以创建自己的 if 语句
'beebmx.kirby-blade.ifs' => [ 'logged' => function () { return !!kirby()->user(); }, ],
声明后,你可以像下面这样使用它
@logged Welcome back {{ $kirby->user()->name() }} @else Please Log In @endlogged
组件
现在你可以在 Kirby 3 中原生使用 Blade 组件。要显示组件,你需要将其放置在 templates/components
目录中,然后你可以使用短横线命名法(kebab case)的前缀 x-
来调用它。
<!-- ../templates/components/alert.blade.php -->
<x-alert/>
<!-- ../templates/components/button.blade.php -->
<x-button></x-button>
如果你的组件在 components
目录中嵌套得更深,你可以使用 .
字符来指示位置
<!-- ../templates/components/inputs/button.blade.php --> <x-inputs.button/>
你还可以通过 "插槽" 和属性向组件发送数据
<x-alert title="Danger">Message</x-alert> <!-- ../templates/components/alert.blade.php --> <div class="alert"> <div>{{$title}}</div> <div>{{ $slot }}</div </div>
有关 组件 的所有文档都可以在 Laravel 网站上找到。