codesleeve / stapler
优雅且简单的基于ORM的PHP文件上传包。
Requires
- php: >=5.4
- doctrine/inflector: ~1
- imagine/imagine: ~0.6.2
- symfony/http-foundation: ~2.3|~3.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-14 14:14:36 UTC
README
注意: 如果您之前已经使用过此包,那么您一直在使用Laravel。此包不再直接与Laravel框架耦合。从1.0.0版本开始,Stapler现在是框架无关的。为了利用之前Beta版本提供的Laravel特定功能(服务提供者、IOC容器、命令、迁移生成器等),我已创建了一个专门的包,专门用于在Laravel中使用Stapler:Laravel-Stapler。如果您在Laravel应用程序中使用Stapler,我强烈建议您使用此包(它将节省您一些样板代码)。
Stapler是一个基于PHP的、框架无关的文件上传包,灵感来源于Ruby Paperclip gem。它可以用来自动上传文件(作为附件对象)到您的ORM记录中。虽然不是完全相同,但如果您之前使用过Paperclip,那么您应该会非常熟悉使用此包。
Stapler由Travis Bennett创建。
要求
Stapler目前需要php >= 5.4(Stapler通过使用特性实现)。
安装
Stapler作为composer包分发,这是在您的应用中使用它的方法。
使用Composer安装此包。编辑您的项目composer.json
文件,以要求codesleeve/stapler
。
"require": { "codesleeve/stapler": "1.0.*" }
关于Stapler
订书机通过将文件上传附加到数据库表记录中来工作。这是通过在表的相应模型中定义附件,然后在保存模型之前将上传的文件(来自您的表单)作为属性(以附件命名)分配给模型来实现的。订书机将监听模型的生存周期回调(保存后、删除前和删除后)并相应地处理文件。本质上,这允许上传的文件像模型上的任何其他属性一样被对待;订书机将抽象出所有文件处理、存储等,以便您可以在不担心文件位置或如何检索它们的情况下专注于项目的其余部分。
关键优势
- 现代:订书机在php >= 5.4之上运行,并利用了许多现代php提供的新功能(特质、可调用类型提示等)。
- 简单:传统上,文件上传一直是一个艰巨的任务;订书机减少了在此过程中所需的大量样板代码。说真的,订书机让文件上传变得极其简单(任何类型的文件)。
- 灵活:订书机提供了一个极其灵活的级联配置;只需更改单个配置选项,就可以将文件配置为本地存储或通过AWS S3存储。
- 可扩展:将您的资产存储在中央位置(如S3)可以使文件从单一位置被多个Web实例访问。
- 强大:订书机利用现代面向对象编程模式,为文件上传提供了一个坚如磐石的建筑架构。它基于特质的驱动系统提供了在多个ORM(Active Record和Data Mapper实现)上工作的潜力,这些ORM实现了生存周期回调。