laraport/blade

laravel illuminate/view 的非官方端口。

该软件包的官方仓库似乎已消失,因此该软件包已被冻结。

0.1.1 2016-08-16 18:14 UTC

This package is auto-updated.

Last update: 2022-12-18 09:25:59 UTC


README

这个PHP库是laravel (L4) blade模板引擎的非官方端口。详见laravelilluminate/blade以及文档。这个端口的目的是为了让开发者可以在独立项目或另一个框架中消费它,而不必强制导入整个laravel框架。

需要PHP 5.4或更高版本。

包含一些额外功能

  • 支持原始模板字符串渲染。
  • 支持自定义文件扩展名。
  • 缓存路径是可选的。

目录

安装

此软件包可以通过composer安装。

$ composer require laraport/blade

使用

如果您已经消费过laravel中的blade视图(我相信您已经这样做了),那么现在在独立项目中消费它也同样简单。

laravel 方式

通常的laravel方式是设置视图路径和缓存。

<?php

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

$path2views = __DIR__.'/path/to/views';
$path2cache = __DIR__.'/path/to/cache';

$Blade = new Laraport\Blade($path2views, $path2cache);

$View = $Blade->make('welcome', ['name' => 'Alice']);

echo $View->render();

这将渲染 __DIR__./path/to/views/welcome{.blade}.php

无缓存

新增的一个功能是加载视图而不设置缓存目录。这背后使用了vfsStream

<?php

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

$Blade = new Laraport\Blade(__DIR__.'/path/to/views');

$View = $Blade->make('hello', ['name' => 'Bob']);

echo $View->render();

这将渲染 __DIR__./path/to/views/hello{.blade}.php 而没有任何缓存。

原始字符串模板

另一个新增功能是支持原始字符串模板渲染。这也使用了vfsStream

<?php

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

$View = Laraport\Blade::render('Hello {{ $name }}!', ['name' => 'Eve']);

echo $View->render();

这将打印出 Hello Eve!

自定义文件扩展名

您也可以为您的blade视图模板设置自定义文件扩展名。

<?php

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

$Blade = new Laraport\Blade(__DIR__.'/path/to/views');

$Blade->withExtension('foo.bar');

$View = $Blade->make('custom', ['name' => 'Laravel']);

echo $View->render();

这将渲染以下之一:custom.foo.barcustom.blade.phpcustom.php,找到哪个就渲染哪个。

如果您愿意,可以添加多个扩展名。

共享数据

数据也可以作为全局变量共享给所有视图。

<?php

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

$Blade = new Laraport\Blade(__DIR__.'/path/to/views');

$Blade->share('acme', 'baz');

$View = $Blade->make('foo');

echo $View->render();

$acme将可用于所有视图。

测试

首先确保您在项目源目录中。

执行 composer 安装。

$ composer install

运行测试。

$ vendor/bin/phpunit

或者

$ composer test

相似项目

许可证

版权所有 © Kamal Khan。在 MIT 许可证 下发布。