lee-to/yii-blade 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

lee-to/yii-blade

最新稳定版本:0.2.0

Composer 安装命令:

composer require lee-to/yii-blade

包简介

Blade template engine support

关键字:

README 文档

README

This package provides Laravel Blade template engine support for the Yii3 framework.

Requirements

  • PHP 8.2+
  • Yii3
  • Composer 2.5+

Installation

composer require lee-to/yii-blade

Or install via local path repository:

"repositories": [
    {
        "type": "path",
        "url": "packages/yii-blade",
        "options": {
            "versions": {
                "lee-to/yii-blade": "1.x-dev"
            },
            "symlink": true
        }
    }
]

Configuration

Configure the package in your config/params.php:

return [
    'lee-to/yii-blade' => [
        'paths' => [
            'default' => '@views',
            'admin' => '@views/admin',
        ],
        'cache_dir' => 'runtime/cache/blade/views',
        'component_namespaces' => [
            'App\\View\\Components' => 'x',
        ],
        'anonymous_component_namespaces' => [
            '@views/components' => 'x',
        ],
        'directives' => [
            // App\Blade\Directives\MyDirective::class,
        ],
    ],
];

Usage

Create a Blade template in your views directory:

{{-- views/hello.blade.php --}}
<h1>Hello, {{ $name }}!</h1>

@if($showGreeting)
    <p>Welcome to Yii3 with Blade!</p>
@endif

The package automatically registers as a renderer for .blade.php files.

Custom Directives

Create a custom directive by implementing DirectiveInterface:

<?php

namespace App\Blade\Directives;

use Closure;
use Leeto\YiiBlade\DirectiveInterface;
use Leeto\YiiBlade\DirectiveType;

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

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

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

Register it in params:

'directives' => [
    App\Blade\Directives\DateTimeDirective::class,
],

Use in templates:

@datetime(time())

Directive Types

  • DirectiveType::DEFAULT - Standard directive (@name($expression))
  • DirectiveType::IF - Conditional directive (@name($condition) ... @endname)
  • DirectiveType::STRINGABLE - Stringable handler for custom object rendering

Features

  • Full Blade syntax support
  • Components and slots
  • Custom directives
  • Anonymous components
  • Template inheritance (@extends, @section, @yield)
  • Includes (@include, @each)
  • Conditionals (@if, @unless, @isset, @empty)
  • Loops (@foreach, @for, @while, @forelse)
  • And more...

License

MIT

统计信息

  • 总下载量: 4
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 5
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-26