2lenet / file-bundle
文件包
1.0.0
2024-09-24 13:45 UTC
Requires
- symfony/framework-bundle: ^6.0|^7.0
Requires (Dev)
- ergebnis/phpstan-rules: ^2.0
- phpstan/phpstan: ^1.9
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-doctrine: ^1.3
- phpstan/phpstan-mockery: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.5
- phpstan/phpstan-symfony: ^1.2
- phpunit/phpunit: ^10.0
- slevomat/coding-standard: ^8.0
- squizlabs/php_codesniffer: ^3.5
README
这是一个标准的Symfony扩展包,用于处理与实体相关联的数据文件
安装
该包尚未在Packagist上,请确保将以下内容添加到您的composer.json
文件中
{ "url": "https://github.com/2lenet/FileBundle", "type": "git" }
使用Composer安装
composer require 2lenet/file-bundle
使用
在您的控制器或服务中,只需使用fileManager获取数据库和绝对路径以存储数据。
$fileSpec = $this->fileManager->getLocalFilename( ENTITY::PDFSTORAGENAME, $object, "pdf" );
- 该函数的第一个参数是存储的名称。每个实体中的每个字段都有自己的存储。在实体类中设置一个常量是一个好习惯。
- 第二个参数是一个对象(最好有getId方法,但不是必需的)。可选地,您可以有一个getDateForFilename方法来获取用于创建文件夹的日期。
- 第三个可选参数是添加到文件上的扩展名(默认为.bin)。不要设置点(.)。
该函数返回一个包含两个属性的FileSpec对象
- dbPath是用于存储在数据库中的路径(从项目目录相对路径)
- absPath是用于写入数据的文件名(使用标准函数打开它)
路径按照这种方式构建($projectDir / data / $storeName / Y / M / D / $object->getId() . $ext),如果文件夹不存在,则会创建具有正确权限的文件夹。Y/M/D是从$object->getDateForFilename()获取的年份、月份和日期,如果它存在,否则使用今天的日期。
file_put_contents($fileSpec->absPath,$youdata); $object->setLocalPdf($fileSpec->dbPath);