具有路径抽象和文件注册的文件管理器,存储解决方案。

1.0.2 2023-05-25 12:41 UTC

This package is auto-updated.

Last update: 2024-09-08 15:46:27 UTC


README

此包提供各种辅助工具来管理Symfony中的文件

  • 提供一个 FileManager 对象,它提供用于管理带有自定义逻辑方案(如 public://image/foo.png)的文件的原始操作,并透明地处理物理真实路径。

  • 提供一个用于透明使用自定义URI方案的PHP StreamWrapper实现。

  • 具有高级功能的文件索引存储接口。

  • 具有事务支持(无破坏性回滚操作和延迟真实文件删除操作)的SQL索引实现。

设置

安装

首先开始

composer require makinacorpus/files

然后,在 config/bundles.php 中将包注册到Symfony中

<?php

return [
    /// ... Your other bundles...
    MakinaCorpus\Files\Bridge\Symfony\FilesBundle::class => ['all' => true],
];

然后进行配置。

基本配置

如果您按照本节的其余部分进行操作,则所有内容都应该自动配置。

自定义方案配置

每个自定义方案都与一个自定义文件夹相关联,允许您在数据库中存储与协议相关的URI,而不是绝对路径,使应用程序易于移植和迁移。

默认情况下,该包提供以下三个方案

  • private:// 用于不应通过HTTPd访问的文件,默认为 %kernel.project_dir/var/private/%
  • public:// 用于将通过HTTPd自由可见的文件,默认为 %kernel.project_dir/public/files/
  • temporary:// 用于临时文件,默认为PHP配置的临时文件夹,
  • upload:// 用于分块文件上传,默认为 temporary://filechunk/
  • webroot:// 用于位于公共目录中的文件,默认为 %kernel.project_dir/public

只有临时方案不能进行配置,所有其他方案都可以通过以下 .env 文件变量进行设置

FILE_PRIVATE_DIR="%kernel.project_dir%/var/private"
FILE_PUBLIC_DIR="%kernel.project_dir%/public/files"
FILE_UPLOAD_DIR="%kernel.project_dir%/var/tmp/upload"
FILE_WEBROOT_DIR="%kernel.project_dir%/public"

用法

文件管理器API

文档将很快提供。

文件存储API

文档将很快提供。

关于从 makinacorpus/filechunk-bundle 迁移的注意事项

  • 环境变量保持不变。

  • MakinaCorpus\FilechunkBundle\FileManager 变为 MakinaCorpus\Files\FileManager,将注册一个类别名以允许平滑迁移。

  • 如果您想保留分块文件上传小部件以避免冲突,则必须将 makinacorpus/filechunk-bundle 升级到版本 >= 3

致谢

此代码包含来自Drupal 8.x https://www.drupal.org 项目,位于 ./StreamWrapper 目录中,所有荣誉归原作者。

所有其余代码是Makina Corpus https://www.makina-corpus.com 的原创作品。