moazamin6 / creative-blade
独立Laravel Blade,适用于所有现有和新的PHP项目
3.0
2022-03-23 10:45 UTC
Requires
- php: ^7.3|^8.0
- ext-json: *
- illuminate/collections: ^8.0
- illuminate/container: ^8.0
- illuminate/contracts: ^8.0
- illuminate/events: ^8.0
- illuminate/filesystem: ^8.0
- illuminate/macroable: ^8.0
- illuminate/support: ^8.0
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插件。