expstudio/stapler

修复AWS 3.0版本的优雅且简单的基于ORM的文件上传包(适用于php)。

v2.0.1 2018-01-10 08:52 UTC

README

# Stapler 构建状态 最新稳定版本 总下载量 最新不稳定版本 许可

注意: 如果您之前已经使用过此包,那么您已经与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

Stapler通过将文件上传附加到数据库表记录来工作。这是通过在表对应的模型内部定义附件,然后在保存模型之前将上传的文件(来自您的表单)作为属性(以附件名称命名)分配给模型来完成的。Stapler将监听模型的生存周期回调(保存后、删除前和删除后)并相应地处理文件。本质上,这允许上传的文件就像模型上的任何其他属性一样被处理;stapler将抽象出所有文件处理、存储等,以便您可以在不担心文件位置或如何检索它们的情况下专注于项目的其余部分。

主要优势

  • 现代:Stapler在php >= 5.4上运行,并利用了许多现代php提供的新功能(特质、可调用类型提示等)。
  • 简单:传统上,文件上传一直被认为是一项艰巨的任务;Stapler减少了整个过程中所需的大量模板代码。说实话,Stapler使得文件上传(任何类型)变得极为简单。
  • 灵活:Stapler提供了一个非常灵活的级联配置;只需更改单个配置选项,就可以将文件配置为本地存储或通过AWS S3存储。
  • 可扩展:将您的资产存储在中央位置(如S3)可以使您的文件从单个位置被多个Web实例访问。
  • 强大:Stapler利用现代面向对象编程模式,为文件上传提供了一个稳固的架构。其基于特性的驱动系统提供了在多个ORMs(Active Record和Data Mapper实现)中工作的潜力,这些ORMs实现了生命周期回调。

文档