silverstripe / gridfieldqueuedexport
通过异步任务从 SilverStripe CMS 界面的 GridField 中导出大量数据集
3.3.0-beta1
2024-09-01 22:17 UTC
Requires
- php: ^8.1
- league/csv: ^9
- silverstripe/framework: ^5
- symbiote/silverstripe-queuedjobs: ^5
Requires (Dev)
- 4.x-dev
- 3.x-dev
- 3.3.x-dev
- 3.3.0-beta1
- 3.2.x-dev
- 3.2.0
- 3.2.0-rc1
- 3.2.0-beta1
- 3.1.x-dev
- 3.1.1
- 3.1.0
- 3.1.0-rc1
- 3.1.0-beta1
- 3.0.x-dev
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0-rc1
- 3.0.0-beta1
- 2.x-dev
- 2.8.x-dev
- 2.8.3
- 2.8.2
- 2.8.1
- 2.8.0
- 2.8.0-rc1
- 2.8.0-beta1
- 2.7.x-dev
- 2.7.0
- 2.7.0-rc1
- 2.7.0-beta1
- 2.6.x-dev
- 2.6.2
- 2.6.1
- 2.6.0
- 2.5.x-dev
- 2.5.1
- 2.5.0
- 2.5.0-rc1
- 2.5.0-beta1
- 2.5.0-alpha1
- 2.4.x-dev
- 2.4.0
- 2.4.0-rc1
- 2.4.0-beta1
- 2.3.x-dev
- 2.3.0
- 2.2.x-dev
- 2.2.0
- 2.1.x-dev
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.x-dev
- 2.0.0
- 2.0.0-beta1
- 1.x-dev / 1.2.x-dev
- 1.1.x-dev
- 1.1.0
- 1.0.x-dev
- 1.0.0
- 1.0.0-rc2
- 1.0.0-rc1
- dev-master
This package is auto-updated.
Last update: 2024-09-18 03:31:25 UTC
README
简介
允许从 GridField
导出大量数据集。通过使用异步任务队列,我们可以避免耗尽 PHP 内存或超出任何最大执行时间限制。
标准 GridField
导出的确切限制取决于服务器配置、服务器容量以及导出的 DataObject
的复杂性。作为一个粗略的指南,当需要导出超过 1000 条记录时,应考虑使用此模块。在标准服务器配置下,该模块应能在几分钟内导出 10,000 条记录。
安装
composer require silverstripe/gridfieldqueuedexport
配置
由于此组件在 GridField
上运行,您可以直接使用它的 addComponent()
API。
$gridField = GridField::create('Pages', 'All pages', SiteTree::get()) $config = $gridField->getConfig(); $config->addComponent(GridFieldQueuedExportButton::create('buttons-after-left'));
如果您想替换默认 GridField 配置创建的 GridFieldExportButton
,您还需要调用 removeComponentsByType()
。
// Find GridField $gridField = $fields->fieldByName('MyGridField'); $config = $gridField->getConfig(); // Add new component $oldExportButton = $config->getComponentByType(GridFieldExportButton::class); $config->addComponent($newExportButton = GridFieldQueuedExportButton::create('buttons-after-left')); // Set Header and Export columns on new Export Button $newExportButton->setCsvHasHeader($oldExportButton->getCsvHasHeader()); $newExportButton->setExportColumns($oldExportButton->getExportColumns()); // Remove original component $config->removeComponentsByType(GridFieldExportButton::class);
注意:此模块已预配置,可以与 silverstripe/userforms 提交 CSV 导出一起使用。
相关
- silverstripe/queuedjobcsvexport: 通过队列作业进行通用 CSV 导出(不依赖于 GridField)