beebmx/kirby-blade

Kirby 3 & 4 的 Blade 模板

安装次数: 1,171

依赖关系: 0

建议者: 0

安全性: 0

星标: 15

关注者: 2

分支: 3

公开问题: 0

类型:kirby-plugin

6.0.1 2024-08-05 17:49 UTC

README

Kirby Blade 使用 Laravel 的 illuminate/viewjenssegers/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 网站上找到。