timostamm / orm-resource
Store files in a Doctrine ORM database
v2.0.0
2025-09-16 06:28 UTC
Requires
- php: ^8.0
- doctrine/orm: ^2.11
- timostamm/web-resource: ^2.0
Requires (Dev)
- mikey179/vfsstream: ^1.6.11
- phpunit/phpunit: ^9.6.20
- symfony/cache: ^5.4 || 6.4
This package is auto-updated.
Last update: 2025-09-23 11:35:53 UTC
README
Doesn't actually store the files in the database, but puts them in a storage directory and references them in the database.
This package uses timostamm/web-resource for file representation.
Files in the file system are never deleted.
Example
use Doctrine\ORM\Mapping as ORM; use TS\Web\Resource\Entity\EmbeddedResource; use TS\Web\Resource\ResourceInterface; #[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);