Modular file exports, for CodeIgniter 4
MIT License
Modular file exports, for CodeIgniter 4
> composer require tatter/exports
$handler = new \Tatter\Exports\Exports\DownloadHandler($myFile);
return $handler->process();
Exports defines small classes that can be used to direct files to various destinations.
Each class is a handler discoverable by Tatter\Handlers
with a distinct set of attributes
and its own doProcess()
method to do the actual export. Think of an export as something
you might see on a "share menu" from a mobile device: supported destinations for a file type.
Install easily via Composer to take advantage of CodeIgniter 4's autoloading capabilities and always be up-to-date:
composer require tatter/exports
Or, install manually by downloading the source files and adding the directory to app/Config/Autoload.php.
You may load Export handlers directly, or use the ExportersFactory
to locate them based
on their attributes:
// Loaded directly
$handler = new \Tatter\Exports\Exporters\DownloadExporter($myFile);`
// Located by Handlers
$class = ExporterFactory::find('download');
$exporter = new $class($myFile);
Every handler supports basic setters to provide your file and optional overrides for file metadata:
$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');
To execute the export, call its process()
method, which will return a ResponseInterface
:
use Tatter\Exports\ExporterFactory;
class MyController
{
public function previewFile($path)
{
$class = ExporterFactory::find('preview');
$exporter = new $class();
return $exporter->setFile($path)->process();
}
}