lambry/batchpress

WordPress 插件,用于帮助批量处理数据。

安装: 6

依赖项: 0

建议者: 0

安全: 0

星标: 5

关注者: 3

分支: 0

开放问题: 0

类型:wordpress-plugin

0.4.2 2023-04-14 23:41 UTC

This package is auto-updated.

Last update: 2024-09-15 02:43:21 UTC


README

BatchPress 是一个小型插件,用于帮助批量处理数据,使用 BatchPress,您可以运行、监控和取消批量作业。

安装: composer require lambry/batchpress

screenshot

使用方法

要使用 BatchPress,为每个作业创建一个新类,并使用 batchpress/jobs 过滤器注册这些类。

作业类概述

  • 必需:具有描述作业的 label 属性。
  • 必需:传递单个项进行处理的 process 方法;任何信息/错误都可以返回,并将显示在日志中。
  • 可选|必需:如果设置上传属性为 true,则 items 方法是可选的,在这种情况下,它可以在开始作业之前过滤上传内容。如果上传为 false 或未定义,则此方法必需以返回一个要处理的项数组。
  • 可选:用于告诉 BatchPress 是否需要 CSV 上传的 upload 属性。
  • 可选:用于设置每批处理项数的 batch 属性。
  • 可选:用于提供有关作业额外详细信息的 description 属性。

基本示例

class Update {
  public $batch = 10;
  public $label = 'Update data';

  // Prepare an array of items for processing
  public function items() : array { }

  // Process each item and optionally return log info
  public function process($item) : mixed { }
}

带有 CSV 上传的示例

class Import {
  public $batch = 10;
  public $upload = true;
  public $label = 'Import data';

  // Optionally filter and format the uploaded content before processing
  public function items(array $data) : array { }

  // Process each item and optionally return log info
  public function process($item) : mixed { }
}

注册作业

add_filter('batchpress/jobs', fn() => [Update::class, Import::class]);

辅助工具

BatchPress 还提供了一些辅助方法,要使用它们,只需在您的作业类中包含 Helpers 特性即可。

use Lambry\BatchPress\Helpers;

class Update {
  use Helpers;

  public function process($item) : mixed {
    // Adding an image to a post
    $id = this->uploadImage($item['url'], $item['id'], $item['title']);
    // Adding a file to a post
    $id = this->uploadFile($item['url'], $item['id'], $item['title']);
  }
}