lee-to/spiral-blade-bridge

螺旋框架:Blade适配器

0.1.0 2024-02-06 08:05 UTC

This package is auto-updated.

Last update: 2024-09-08 06:00:39 UTC


README

安装

composer require lee-to/spiral-blade-bridge

要启用扩展,请通过添加 Leeto\SpiralBlade\Bootloader\BladeBootloader 来修改您的应用程序

use Leeto\SpiralBlade\Bootloader\BladeBootloader;

class Kernel extends \Spiral\Framework\Kernel
{
    // ..

    public function defineBootloaders(): array
    {
        return [
            // ..
            // Views
            BladeBootloader::class,
            // ..
        ];
    }

    // ..
}

配置

将配置发布到 app/config/views/blade.php,您也可以添加类组件和匿名组件以及指令

return [
    'paths' => [
        // 'custom' => directory('root') . 'packages/custom/views',
        'app' => directory('root') . 'app/views',
    ],
    'cache_dir' => directory('runtime') . 'cache/views',
    'component_namespaces' => [
        // 'VendorName\Components' => 'prefix'
    ],
    'anonymous_component_namespaces' => [
        // directory('root') . 'packages/prefix/views/components' => 'prefix',
    ],
    'directives' => [
        // MyCustomDirective::class,
    ],
];

指令

添加实现 Leeto\SpiralBlade\DirectiveInterface 接口的类,并将其添加到配置中

<?php

use Closure;
use Leeto\SpiralBlade\DirectiveInterface;
use Leeto\SpiralBlade\DirectiveType;

final class DateTimeDirective implements DirectiveInterface
{
    public function getType(): DirectiveType
    {
        return DirectiveType::DEFAULT;
    }

    public function getName(): string
    {
        return 'datetime';
    }

    public function handler(): Closure
    {
        return static fn (string $expression) => "<?php echo ($expression)->format('m/d/Y H:i'); ?>";
    }
}