ekandreas/bladerunner

该包已被弃用且不再维护。未建议替代包。

WordPress Blade L5/6/7/8 模板引擎

安装数: 32,001

依赖项: 3

建议者: 0

安全性: 0

星标: 10

关注者: 2

分支: 1

开放问题: 1

类型:wordpress-plugin


README

License Build Status StyleCI GitHub release Twitter Follow

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的最后。

你好世界

  1. 使用Composer安装库
  2. 确保缓存文件夹在上传中可写,例如 ../wp-content/uploads/.cache
  3. 激活插件
  4. 创建一个视图,例如
<!-- view file: views/pages/index.blade.php -->
Hello World Page rendered at {{ date('Y-m-d H:i:s') }}
  1. 在您的 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 中运行它们。

控制器示例

以下示例将暴露 $imagesviews/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