zunaid / stapler
优雅简单的基于ORM的PHP文件上传包。
Requires
- php: >=8.0.0
- doctrine/inflector: ^2.0.0
- imagine/imagine: ~0.6.2
- symfony/http-foundation: ^v6.0.0
Requires (Dev)
- aws/aws-sdk-php: 2.4.*@dev
- illuminate/config: 4.*|5.*
- illuminate/database: 4.*|5.*
- mockery/mockery: 0.8.0
This package is not auto-updated.
Last update: 2024-09-28 21:07:44 UTC
README
注意: 如果您之前使用过此包,那么您已经使用 Laravel 使用它。此包不再直接与 Laravel 框架耦合。自 1.0.0 版本起,Stapler 变得与框架无关。为了利用先前测试版提供的一些 Laravel 特定功能(服务提供者、IOC 容器、命令、迁移生成器等),我创建了一个单独的包,专门用于在 Laravel 中使用 Stapler:Laravel-Stapler。如果您在 Laravel 应用程序中使用 Stapler,我强烈建议您使用此包(它将节省一些样板代码)。
Stapler 是一个基于 PHP 的与框架无关的文件上传包,灵感来自 Ruby Paperclip 钥匙。它可以用于将文件上传(作为附件对象)添加到您的 ORM 记录中。虽然不是完全相同,但如果您之前使用过 Paperclip,那么您应该会非常舒适地使用这个包。
Stapler 由 Travis Bennett 创建。
要求
Stapler 当前需要 php >= 5.4(Stapler 通过使用 traits 实现)。
安装
Stapler 以 composer 包的形式分发,这是在您的应用程序中使用它的方式。
使用 Composer 安装此包。编辑您项目的 composer.json
文件,以要求 codesleeve/stapler
。
"require": { "codesleeve/stapler": "1.0.*" }
关于 Stapler
Stapler 通过将文件上传附加到数据库表记录来工作。这是通过在表的对应模型中定义附件,然后在保存之前将上传的文件(从您的表单中)作为属性(名称与附件相同)分配给模型来完成的。Stapler 将监听模型的生存周期回调(保存后、删除前、删除后)并相应地处理文件。本质上,这允许上传的文件像模型上的任何其他属性一样被对待;stapler 将抽象出所有文件处理、存储等,这样您就可以专注于项目的其余部分,而无需担心文件在哪里或如何检索它们。
主要优势
- 现代:Stapler 在 php >= 5.4 上运行,并利用了现代 PHP 提供的许多新功能(traits、可调用类型提示等)。
- 简单:传统上,文件上传一直是一个繁重的任务;Stapler减少了整个过程中所需的大量模板代码。说真的,Stapler使文件上传变得非常简单(适用于任何类型的文件)。
- 灵活:Stapler提供了一个非常灵活的级联配置;只需更改单个配置选项,就可以配置文件是本地存储还是通过AWS S3存储。
- 可扩展:将您的资产存储在中央位置(如S3)允许您的文件从单一位置由多个Web实例访问。
- 强大:Stapler利用现代面向对象编程模式,为文件上传提供了一个坚如磐石的建筑架构。它基于特征的驱动系统提供了在多个ORM(Active Record和Data Mapper实现)中工作的潜力,这些ORM实现了生命周期回调。