tiny-pixel/fields-composer

简化了将ACF值处理到Sage 10视图编辑器的过程

资助包维护!
Patreon

dev-master 2019-07-14 21:42 UTC

This package is auto-updated.

Last update: 2024-09-15 04:21:04 UTC


README

Fields Composer 是一个针对 Sage 10 设计的包。它为 Sage 视图编辑器提供缓存的高级自定义字段数据。

要求

Sage >= 10.0

PHP >= 7.3

Composer

安装

通过 composer 安装

composer require tiny-pixel/fields-composer

用法

app/Composers 中创建一个新的视图编辑器,该编辑器扩展 TinyPixel\FieldsComposer\FieldsComposer

<?php

namespace App\Composers;

use \TinyPixel\FieldsComposer\FieldsComposer;
use \Illuminate\View\View;

class FieldsComposerDemo extends FieldComposer
{
  // ...
}

这工作方式与普通 Sage 编辑器完全相同,但具有对高级自定义字段的内置支持,并利用 Laravel 的 Cache 门面。

您可以使用 $this->fields() 访问字段,并设置字段缓存的过期时间,如下所示

  // ...

  /**
   * Expiration time of cache in seconds
   *
   * @var int
   */
  public $cacheExpiry = 3600;

  /**
   * Data to be passed to view before rendering.
   *
   * @param  array $data
   * @param  \Illuminate\View\View $view
   * @return array
   */
  public function with($data, $view)
  {
    return $data = [
      'myFields' => $this->fields(),
      'myGroup' => $this->fields('myGroup'),
      'myItem' => $this->fields('myGroup')->item,
      'mySubItem' => $this->fields('myGroup')->item['subItem'],
    ];
  }

  //...

配置

默认情况下,字段使用文件系统策略缓存到 storage/framework/cache/data,但您可以在 config/cache.php 中更改它(如果您想利用数据库、memcached、redis 等)。此文件应在安装时已复制到您的项目中。

注意

目前,此插件在发布、编辑、删除任何内容时都会清空 Laravel 缓存。即使缓存在视图编辑器中设置为 0,也是如此。如果您在应用程序的其他地方使用 Illuminate 缓存,请注意这一点。