lambry / batchpress
WordPress 插件,用于帮助批量处理数据。
0.4.2
2023-04-14 23:41 UTC
Requires
- php: >=7.4
- composer/installers: ~1.0
This package is auto-updated.
Last update: 2024-09-15 02:43:21 UTC
README
BatchPress 是一个小型插件,用于帮助批量处理数据,使用 BatchPress,您可以运行、监控和取消批量作业。
安装: composer require lambry/batchpress
使用方法
要使用 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']); } }