atijust/ronin-blade

Laravel Blade 模板引擎作为一个独立的组件

dev-master 2015-09-19 22:20 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:10:43 UTC


README

Build Status Scrutinizer Code Quality Code Coverage License

Laravel Blade 模板引擎作为一个独立的组件。

<?php
require_once __DIR__ . '/vendor/autoload.php';

$blade = Ronin\Blade::make(__DIR__ . '/views', __DIR__ . '/cache');
echo $blade->make('index', ['message' => 'Hello, world!'])->render();

安装

在你的 composer.json 中要求此包,并运行 composer update 命令。

{
    "require": {
        "atijust/ronin-blade": "dev-master@dev"
    }
}

使用

\Ronin\Blade::make() 返回一个 Illuminate\View\Factory 实例。

$blade = Ronin\Blade::make(__DIR__ . '/views', __DIR__ . '/cache');
echo get_class($blade); // => Illuminate\View\Factory

你可以使用所有 Blade 特性。

// Add a piece of shared data to the environment.
$blade->share('defaultTitle', 'Ronin Blade');

// Register a view composer event.
$blade->composer('index', 'IndexViewComposer');

// Register a handler for custom directives.
$blade->getEngineResolver()->resolve('blade')->getCompiler()->directive(
    'datetime',
    function($expression) {
        return "<?php echo with{$expression}->format('m/d/Y H:i'); ?>";
    }
);

// Get the evaluated view contents for the given view.
$view = $blade->make('index');

默认情况下,视图构造器和视图创建者是通过 ronin 的内部容器解析的。如果你想使用自己的容器,将 \Ronin\Blade::make() 的第三个参数设置为任何你喜欢的容器。

$container = new \Illuminate\Container\Container();
$container->singleton('IndexViewComposer', function () {
    return new IndexViewComposer();
});

$blade = \Ronin\Blade::make(__DIR__ . '/views', __DIR__ . '/cache', $container);
$blade->composer('index', 'IndexViewComposer'); // Resolved by $container

许可证

Ronin Blade 是开源软件,MIT 许可证下发布。