moazamin6/creative-blade

独立Laravel Blade,适用于所有现有和新的PHP项目

3.0 2022-03-23 10:45 UTC

This package is auto-updated.

Last update: 2024-09-23 16:00:36 UTC


README

完全兼容于每个PHP应用程序的独立Laravel Blade,修改于 illuminate/view v6.10.0

安装

使用composer安装

composer require moazamin6/creative-blade

使用方法

通过传递包含视图文件文件夹的路径和一个缓存文件夹来创建Blade实例。通过调用make方法来渲染模板。有关Blade模板引擎的更多信息,请参阅 https://laravel.net.cn/docs/7.x/blade

require 'vendor/autoload.php';

use CreativeBlade\CreativeBlade;

$views = __DIR__ . '/views';
$cache = __DIR__ . '/cache';

$blade = new CreativeBlade($views, $cache);

echo $blade->view()->make('demo', ['message' => 'This is Creative Blade']);

在其他所有独立Blade模板包中,存在一个问题,即您不能使用$this关键字来访问您的原生应用程序功能。例如,如果您想在现有的CodeIgniter应用程序中实现Blade模板,在视图文件中访问您的会话,如$this->session,如果您将视图转换为Blade,那么在此场景下您的应用程序将崩溃。因此,我修改了Laravel的illuminate/view包,以解决这个问题,我还使用了现有的独立包coolpraz/php-blade,因此您可以发送您想要在视图中访问的数据对象,例如,我将使用CodeIgniter默认实例

$ci = &get_instance();
$blade = new CreativeBlade($views, $cache,$ci);

现在,您可以通过调用compiler()函数轻松创建指令

$blade->compiler()->directive('datetime', function ($expression) {
    return "<?php echo with({$expression})->format('F d, Y g:i a'); ?>";
});

{{-- In your Blade Template --}}
<?php $dateObj = new DateTime('2017-01-01 23:59:59') ?>
@datetime($dateObj)

Blade实例将所有方法传递给内部视图工厂。因此,您可以使用Blade文档中描述的所有Blade功能,请访问网站获取更多信息。

集成

您可以使用PHP Blade与任何框架、纯PHP脚本或用于开发CMS插件。