ekandreas / bladerunner
WordPress Blade L5/6/7/8 模板引擎
Requires
- php: ^5.6 || ^7.0 || ^8.0
- brain/hierarchy: ^2
- illuminate/config: ^5 || ^6 || ^7 || ^8 || ^9 || ^10
- illuminate/view: ^5 || ^6 || ^7 || ^8 || ^9 || ^10
- symfony/yaml: ^3
Requires (Dev)
- dev-master / 1.8.x-dev
- 1.8.2
- 1.8.1
- 1.8
- 1.7.4
- 1.7.3
- dev-develop / 1.7.1.x-dev
- 1.7
- 1.7-beta.3
- 1.7-beta.2
- 1.7-beta.1
- 1.7-beta
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6
- 1.5.2
- 1.5.1
- 1.5
- 1.4.3
- 1.4
- 1.3.2
- 1.3.1
- 1.3
- 1.2.1
- 1.2
- 1.1
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0
- 0.9
- 0.8.8
- 0.8.7
- 0.8.6
- 0.8.5
- 0.8.4
- 0.8.3
- 0.8.2
- 0.8.1
- 0.8
- 0.7.1
- 0.7
- 0.6.6
- 0.6.5
- 0.6.4
- 0.6.3
- 0.6.2
- 0.6.1
- 0.6
- 0.5.7
- 0.5.6
- 0.5.5
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5
- 0.4.3
- 0.4.2
- 0.4.1
- dev-main
- dev-release/1.7
- dev-release/1.7-beta.3
- dev-release/1.7-beta.2
- dev-feature/1-7-beta-fix-2
- dev-release/1.6.2
- dev-release/1.6.1
- dev-release/1.6
- dev-feature/Rebuild
- dev-analysis-zGDDyg
- dev-frozzare-fixes/method-naming
- dev-frozzare-fixes/docblock
This package is auto-updated.
Last update: 2023-06-16 08:46:12 UTC
README
WordPress插件,用于Laravel Blade模板。
要将它安装到基于Composer的WordPress环境中
composer require ekandreas/bladerunner
在WordPress中激活插件,并检查和激活*.blade.php模板。由于WordPress的基本功能,您的主题仍需要一个index.php。当移除它时,主题将称为损坏。
如果您不使用基于Composer的WordPress开发环境,您可以从Bladerunner网站 http://bladerunner.aekab.se下载最新发布的插件,并以常规方式通过wp-admin上传zip文件进行安装。
此插件的版本列表在readme的最后。
你好世界
- 使用Composer安装库
- 确保缓存文件夹在上传中可写,例如
../wp-content/uploads/.cache
- 激活插件
- 创建一个视图,例如
<!-- view file: views/pages/index.blade.php --> Hello World Page rendered at {{ date('Y-m-d H:i:s') }}
- 在您的
index.php
中,添加对创建的视图的全局调用,例如
<?php bladerunner('views.pages.index')
https://laravel.net.cn/docs/5.2/blade
缓存
- 如果
WP_DEBUG
设置为true,则模板始终会被渲染和更新。 - 在
save_post
时使视图文件(缓存)无效 - (当开发模板时,清空uploads中的.cache文件夹是一个很好的主意。例如,在gulp-file中创建一个
del
命令。)
目录
- 您的缓存视图将始终存储在您的wp上传文件夹中,
.cache
- 您的视图必须放置在您的主题文件夹中。
- 您的视图必须具有
.blade.php
扩展名。
模板助手
有一个名为bladerunner
的模板助手函数,定义在全局范围内,用于在标准WordPress模板中使用。
示例:您想创建一个404模板,并且不想在模板文件中使用.blade.php
扩展名。
- 在主题根目录中创建一个404.php。
- 将以下代码添加到模板中
<?php bladerunner('views.pages.404');
- 在
views/pages
文件夹中,创建一个blade模板404.blade.php
您可以使用全局bladerunner
函数传递任何数据,如下所示
<?php bladerunner('views.pages.404', ['module'=>$module]);
或使用compact,例如
<?php bladerunner('views.pages.404', compact('module'));
控制器
从版本1.7开始,控制器被添加到Bladerunner中。默认情况下,Bladerunner将在主题文件夹+/controllers中查找扩展类。如果您想添加或更改控制器路径,请查看下面的过滤器!
控制器类必须扩展\Bladerunner\Controller才能工作。它将猜测视图的路径,但您可以使用protected $view='your.custom.view.path''
来覆盖它
控制器文件遵循与WordPress相同的层次结构。您可以使用Blade指令@debug
查看控制器层次结构。
扩展控制器类,建议类名与文件名匹配。在控制器类中创建方法
- 使用public function将返回值暴露给Blade视图/s。
- 使用public static function在Blade视图/s中使用该函数。
- 在内部控制器方法中使用受保护函数,因为只有公共方法才暴露给视图。您可以在
__construct
中运行它们。
控制器示例
以下示例将暴露 $images
到 views/single.blade.php
controllers/Single.php
<?php namespace App; use Bladerunner\Controller; class Single extends Controller { /** * Return images from Advanced Custom Fields * * @return array */ public function images() { return get_field('images'); } }
views/single.blade.php
@if($images) <ul> @foreach($images as $image) <li><img src="{{$image['sizes']['thumbnail']}}" alt="{{$image['alt']}}"></li> @endforeach </ul> @endif
钩子和过滤器
Bladerunner 持续实现过滤器和钩子以修改值和过程。
钩子
...
过滤器
修改 Bladerunner 缓存文件夹路径,默认为 ../wp-content/uploads/.cache
add_filter('bladerunner/cache/path', function() { return '/my/path/to/cache'; });
如果您不希望 Bladerunner 创建缓存文件夹
add_filter('bladerunner/cache/make', function() { return false; });
如果您想自定义存储视图的基础路径,请使用
add_filter('bladerunner/template/bladepath', function ($paths) { if (!is_array($paths)) { $paths = [$paths]; } $paths[] = ABSPATH . '../../resources/views'; return $paths; });
如果您想自定义存储控制器的基础路径,请使用
add_filter('bladerunner/controller/paths', function ($paths) { $paths[] = PLUGIN_DIR . '/my-fancy-plugin/controllers'; return $path; });
我们将很快将更多的 WordPress 扩展添加到 Bladerunner 引擎中。请给我们您优秀的示例以便实现!
链接
测试
测试要求
- 最新 Docker 安装(不是老式的 Boot2Docker)
- PHP Composer 目前仅在 OSX 上测试过。
测试步骤
通过 Composer 在仓库内检查测试组件
composer update
使用 Testrunner(必需开发包)和 Docker,测试应通过一条命令执行
vendor/bin/dep testrunner