itxiao6/view

This is Minkernel view

1.0.1 2017-09-18 08:25 UTC

This package is auto-updated.

Last update: 2024-02-27 15:30:40 UTC


README

这是从 Laravel 中抽取的模板引擎,跟常见的做法不同,这是一个独立的模块,不再依赖于 Laravel 的容器或其他任何组件。

安装

使用 Composer 时,只需要执行以下命令即可:

composer require Itxiao6/view

如果你没有使用 Composer,可以将 src 目录复制到你的项目中,然后 require 所有的文件即可。

使用

<?php
$path = ['/view_path'];         // �视图文件目录,这是数组,可以有多个目录
$cachePath = '/cache_path';     // 编译文件缓存目录

$compiler = new \Itxiao6\View\Compilers\ViewCompiler($cachePath);

// 如过有需要,你可以添加自定义关键字
$compiler->directive('datetime', function($timestamp) {
    return preg_replace('/(\(\d+\))/', '<?php echo date("Y-m-d H:i:s", $1); ?>', $timestamp);
});

$engine = new \Itxiao6\View\Engines\CompilerEngine($compiler);
$finder = new \Itxiao6\View\FileViewFinder($path);

// 如果需要添加自定义的文件扩展,使用以下方法
$finder->addExtension('tpl');

// 实例化 Factory
$factory = new \Itxiao6\View\Factory($engine, $finder);

// 渲染视图并输出
echo $factory->make('hello', ['a' => 1, 'b' => 2])->render();

几乎所有 View 的特性都被保留了,但是一些专属于 Laravel 的特征被移除了:

  • @inject @can @cannot @lang 关键字被移除了
  • 不支持事件和中间件

文档: http://laravel.com/docs/5.1/blade

感谢 Laravel 和它的创作者们,Laravel 是个伟大的项目。