timostamm / orm-resource
将文件存储在 Doctrine ORM 数据库中
v1.1.0
2023-04-17 08:21 UTC
Requires
- php: ^7.2 || ^8.0
- doctrine/orm: ^2.6
- timostamm/web-resource: ^1.1.0
Requires (Dev)
- doctrine/annotations: ^2.0
- mikey179/vfsstream: ^1.6.11
- phpunit/phpunit: ^8.5.23 || ^9
- symfony/cache: >=4.4 < 6
This package is auto-updated.
Last update: 2024-09-17 11:30:03 UTC
README
实际上并不在数据库中存储文件,而是将它们放入存储目录并在数据库中引用它们。
此包使用 timostamm/web-resource 来表示文件。
文件系统中的文件永远不会被删除。
示例
/** @ORM\Entity() */ class TestEntity { /** * @ORM\Embedded(class = EmbeddedResource::class ) */ private $file; public function getFile(): ?ResourceInterface { return $this->file; } public function setFile(?ResourceInterface $resource): void { $this->file = EmbeddedResource::create($resource); } } $em->getEventManager() ->addEventSubscriber(new ORMResourceHandler(new HashStorage($storageDir))); $e = new TestEntity(); $e->setFile(Resource::fromFile(__FILE__)); $em->persist($e); $em->flush($e);