gerizal / 订书机
优雅简单的基于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 auto-updated.
Last update: 2024-09-14 20:55:58 UTC
README
注意: 如果您之前使用过此包,那么您已经使用 Laravel 使用过它。此包不再直接与 Laravel 框架耦合。从 1.0.0 版本开始,Stapler 现在是框架无关的。为了利用先前 Beta 版本提供的 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提供的许多新特性(特性、可调用类型提示等)。
- 简单:传统上,文件上传一直是一个艰巨的任务;Stapler减少了在这个过程中所需的大部分样板代码。说真的,Stapler让文件上传(任何类型)变得极其简单。
- 灵活:Stapler提供了一个非常灵活的级联配置;只需更改单个配置选项,就可以为存储在本地或通过AWS S3的文件进行配置。
- 可扩展:将您的资产存储在中央位置(如S3)允许您的文件可以从单一位置被多个Web实例访问。
- 强大:Stapler利用现代面向对象编程模式,为文件上传提供了一个坚如磐石的架构。基于特性的驱动系统提供了跨多个ORMS(包括Active Record和Data Mapper实现)实现生命周期回调的潜力。