zunaid/stapler

优雅简单的基于ORM的PHP文件上传包。

dev-main 2024-01-19 19:24 UTC

This package is not auto-updated.

Last update: 2024-09-28 21:07:44 UTC


README

#Stapler Build Status Latest Stable Version Total Downloads Latest Unstable Version License

注意: 如果您之前使用过此包,那么您已经使用 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实现了生命周期回调。

文档