tatter/出口

模块化文件出口,适用于CodeIgniter 4

v3.0.0-beta.4 2022-01-27 23:59 UTC

README

模块化文件出口,适用于CodeIgniter 4

Coverage Status

快速开始

  1. 使用Composer安装:> composer require tatter/exports
  2. 加载处理器:$handler = new \Tatter\Exports\Exports\DownloadHandler($myFile);
  3. 运行导出:return $handler->process();

描述

导出定义了小型类,可以用于将文件定向到各种目的地。每个类都是一个可由Tatter\Handlers发现的处理程序,具有一组独特的属性和自己的doProcess()方法来执行实际导出。将导出想象成您可能在移动设备的“分享菜单”中看到的东西:文件类型的支持目的地。

安装

通过Composer轻松安装以利用CodeIgniter 4的自动加载功能,并始终保持最新状态

composer require tatter/exports

或者,通过下载源文件并将目录添加到app/Config/Autoload.php中手动安装。

用法

您可以直接加载导出处理器,或者使用ExportersFactory根据它们的属性找到它们

// Loaded directly
$handler = new \Tatter\Exports\Exporters\DownloadExporter($myFile);`

// Located by Handlers
$class    = ExporterFactory::find('download');
$exporter = new $class($myFile);

每个处理器都支持基本的设置器,以提供您的文件和文件元数据的可选覆盖

$exporter->setFile('/path/to/file');
// or...
$file = new \CodeIgniter\Files\File('/path/to/file');
$exporter->setFile($file);

$exporter->setFileName('RenameFileDuringExport.bam');
$exporter->setFileMime('overriding/mimetype');

要执行导出,调用其process()方法,它将返回一个ResponseInterface

use Tatter\Exports\ExporterFactory;

class MyController
{
    public function previewFile($path)
    {
        $class    = ExporterFactory::find('preview');
        $exporter = new $class();

        return $exporter->setFile($path)->process();
    }
}