dereuromark/cakephp-file-storage

此插件允许您将文件存储在任何类型的存储后端。此插件将 Gaufrette 库(https://github.com/KnpLabs/Gaufrette)包装成 CakePHP 风格,并提供通过 StorageManager 类使用存储适配器的一种简单方法。

安装: 225

依赖者: 0

建议者: 0

安全: 0

星星: 4

关注者: 2

分支: 2

开放问题: 1

类型:cakephp-plugin

4.0.0-RC 2024-03-11 16:16 UTC

README

CI PHPStan Latest Stable Version Minimum PHP Version License

FileStorage 插件为您提供将文件上传和存储到任何类型的存储后端的可能性。该插件以 CakePHP 风格引入了 FlySystem 库,并提供了一种简单的方法来使用存储适配器。

存储适配器是一个统一接口,允许您将文件数据存储到本地文件系统、内存、数据库、zip 文件或远程系统。有一个数据库表记录了您存储在哪里。您始终可以编写自己的适配器或扩展和重载现有的适配器。

此分支用于与 CakePHP 5.0+ 一起使用。有关详细信息,请参阅 版本映射

工作原理

整个插件都考虑了清晰的 关注点分离 (SoC):从应用程序的角度看,文件始终是 file_storage 表中的一个条目。该表是文件的 参考 位置,并保留了一些元信息,如 MIME 类型、文件名、文件哈希(可选)和大小。将文件的路径存储在任意表中与其他数据一起被视为 不良做法,因为它不尊重从架构角度的 SoC,但许多人出于某种原因这样做。

您可以使用插件中的 FileStorage 模型通过 hasOne、hasMany 或 HABTM 将 file_storage 表与您的模型关联起来。上传文件时,您通过关联保存它到 FileStorage 模型,例如 Documents.file。FileStorage 模型随后触发文件存储特定的事件,监听这些事件的监听器处理文件,并使用不同后端的适配器将其放入配置的存储后端,并使用路径构建器类构建存储路径。

文档

有关文档以及教程,请参阅此存储库的 docs 目录。

支持

有关错误和功能请求,请使用此存储库的 问题 部分。

贡献

要为此插件做出贡献,请遵循一些基本规则。

  • 拉取请求必须发送到反映您想要贡献的版本的分支。
  • 需要 单元测试