smichaelsen / fal-filewriter

1.1.0 2017-08-16 06:00 UTC

This package is auto-updated.

Last update: 2024-08-29 04:03:35 UTC


README

这是一个小助手包,用于在需要创建文件并将其保存到TYPO3的文件抽象层时使用。

安装

FAL Filewriter 不是 TYPO3 扩展,也不通过 TER 提供。只能通过 composer 安装。

composer require smichaelsen/fal-filewriter

使用方法

FileGenerator

您需要创建一个类,该类提供将被保存到文件中的内容。它必须实现 \Smichaelsen\FalFilewriter\FileGeneratorInterface 接口,这相当简单。

存储

默认情况下,您的TYPO3安装将有一个指向文件admin的存储记录,uid为 1,但当然您可以配置自己的存储记录,指向其他文件夹,甚至指向AWS等外部服务。

按如下方式加载存储对象

$storage = $this->objectManager->get(\TYPO3\CMS\Core\Resource\StorageRepository::class)->findByUid($fileStorageUid);

FileWriterService

\Smichaelsen\FalFilewriter\FileWriterService 有一个公开方法 saveFile(),它接受以下参数

  • $fileGenerator:您的文件生成对象,实现 FileGeneratorInterface 接口。
  • $fileIdentifier:文件名,可能包括在 $storage 文件夹内的相对路径。文件扩展名可以省略。然后从 $fileGenerator->getFileExtension())中读取。如果文件名以不存在的路径开始,将尝试创建该路径。
  • $storage:要保存文件的 ResourceStorage 对象。有关更多信息,请参阅上面("存储")。

返回值将是一个 \TYPO3\CMS\Core\Resource\FileInterface 对象,表示保存的文件。

示例

/** @var \Smichaelsen\FalFilewriter\FileWriterService $fileWriterService */
/** @var \Smichaelsen\FalFilewriter\FileGeneratorInterface $fileGenerator */
/** @var \TYPO3\CMS\Core\Resource\ResourceStorage $storage */
$fileObject = $fileWriterService->saveFile($fileGenerator, 'folder/my-filename', $storage);