makinaCorpus / files
具有路径抽象和文件注册的文件管理器,存储解决方案。
Requires
- php: >=8.0
- ramsey/uuid: ^4
- symfony/filesystem: ^5.4|^6.0
- symfony/finder: ^5.4|^6.0
- symfony/http-foundation: ^5.4|^6.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- makinacorpus/goat-query: ^2.1.1
- phpunit/phpunit: ^9.2
- symfony/config: ^5.4|^6.0
- symfony/console: ^5.4|^6.0
- symfony/dependency-injection: ^5.4|^6.0
- symfony/framework-bundle: ^5.4|^6.0
- symfony/http-kernel: ^5.4|^6.0
- symfony/mime: ^5.4|^6.0
- symfony/yaml: ^5.4|^6.0
- twig/twig: ^3.1
Conflicts
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 的原创作品。