From aa00bec846e275ba742a722934506a553a373b16 Mon Sep 17 00:00:00 2001 From: julien Date: Mon, 16 Mar 2026 15:16:56 +0100 Subject: [PATCH] Refatoring : Working state --- docs/ARCHITECTURE.md | 1 - src/Media/MediaService.php | 31 ------------------- ...diaServiceDuplicateAfterInsertRaceTest.php | 5 +-- tests/Media/MediaServiceEdgeCasesTest.php | 7 +++-- tests/Media/MediaServiceInvalidMimeTest.php | 5 +-- .../Media/MediaServiceInvalidTempPathTest.php | 5 +-- tests/Media/MediaServiceTest.php | 5 +-- 7 files changed, 16 insertions(+), 43 deletions(-) delete mode 100644 src/Media/MediaService.php diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 06aacf2..005313d 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -267,7 +267,6 @@ src/ │ ├── MediaController.php │ ├── MediaRepository.php │ ├── MediaRepositoryInterface.php -│ ├── MediaService.php │ └── MediaServiceInterface.php ├── Post/ │ ├── Post.php diff --git a/src/Media/MediaService.php b/src/Media/MediaService.php deleted file mode 100644 index 8e42ac3..0000000 --- a/src/Media/MediaService.php +++ /dev/null @@ -1,31 +0,0 @@ -uploadDir = sys_get_temp_dir() . '/slim_media_race_' . uniqid('', true); @mkdir($this->uploadDir, 0755, true); - $this->service = new MediaService($this->repository, $this->postRepository, $this->uploadDir, '/media', 5 * 1024 * 1024); + $this->service = new MediaService($this->repository, $this->postRepository, new LocalMediaStorage($this->uploadDir), '/media', 5 * 1024 * 1024); } protected function tearDown(): void diff --git a/tests/Media/MediaServiceEdgeCasesTest.php b/tests/Media/MediaServiceEdgeCasesTest.php index 8a4ea9c..09c470a 100644 --- a/tests/Media/MediaServiceEdgeCasesTest.php +++ b/tests/Media/MediaServiceEdgeCasesTest.php @@ -6,7 +6,8 @@ namespace Tests\Media; use App\Media\Exception\FileTooLargeException; use App\Media\Exception\StorageException; use App\Media\MediaRepositoryInterface; -use App\Media\MediaService; +use App\Media\Application\MediaApplicationService as MediaService; +use App\Media\Infrastructure\LocalMediaStorage; use App\Post\PostRepositoryInterface; use PHPUnit\Framework\TestCase; use Psr\Http\Message\StreamInterface; @@ -23,7 +24,7 @@ final class MediaServiceEdgeCasesTest extends TestCase $file = $this->createMock(UploadedFileInterface::class); $file->method('getSize')->willReturn(null); - $service = new MediaService($repo, $postRepo, '/tmp', '/media', 1000); + $service = new MediaService($repo, $postRepo, new LocalMediaStorage('/tmp'), '/media', 1000); $this->expectException(StorageException::class); $service->store($file, 1); @@ -41,7 +42,7 @@ final class MediaServiceEdgeCasesTest extends TestCase $file->method('getSize')->willReturn(999999); $file->method('getStream')->willReturn($stream); - $service = new MediaService($repo, $postRepo, '/tmp', '/media', 100); + $service = new MediaService($repo, $postRepo, new LocalMediaStorage('/tmp'), '/media', 100); $this->expectException(FileTooLargeException::class); $service->store($file, 1); diff --git a/tests/Media/MediaServiceInvalidMimeTest.php b/tests/Media/MediaServiceInvalidMimeTest.php index ba2a1f3..b152c63 100644 --- a/tests/Media/MediaServiceInvalidMimeTest.php +++ b/tests/Media/MediaServiceInvalidMimeTest.php @@ -5,7 +5,8 @@ namespace Tests\Media; use App\Media\Exception\InvalidMimeTypeException; use App\Media\MediaRepositoryInterface; -use App\Media\MediaService; +use App\Media\Application\MediaApplicationService as MediaService; +use App\Media\Infrastructure\LocalMediaStorage; use App\Post\PostRepositoryInterface; use PHPUnit\Framework\TestCase; use Psr\Http\Message\StreamInterface; @@ -31,7 +32,7 @@ final class MediaServiceInvalidMimeTest extends TestCase $file->method('getStream')->willReturn($stream); $file->method('getClientFilename')->willReturn('photo.png'); - $service = new MediaService($repo, $postRepo, sys_get_temp_dir(), '/media', 500000); + $service = new MediaService($repo, $postRepo, new LocalMediaStorage(sys_get_temp_dir()), '/media', 500000); try { $this->expectException(InvalidMimeTypeException::class); diff --git a/tests/Media/MediaServiceInvalidTempPathTest.php b/tests/Media/MediaServiceInvalidTempPathTest.php index af1c7b1..29ab1bd 100644 --- a/tests/Media/MediaServiceInvalidTempPathTest.php +++ b/tests/Media/MediaServiceInvalidTempPathTest.php @@ -5,7 +5,8 @@ namespace Tests\Media; use App\Media\Exception\StorageException; use App\Media\MediaRepositoryInterface; -use App\Media\MediaService; +use App\Media\Application\MediaApplicationService as MediaService; +use App\Media\Infrastructure\LocalMediaStorage; use App\Post\PostRepositoryInterface; use PHPUnit\Framework\TestCase; use Psr\Http\Message\StreamInterface; @@ -28,7 +29,7 @@ final class MediaServiceInvalidTempPathTest extends TestCase $postRepo = $this->createMock(PostRepositoryInterface::class); - $service = new MediaService($repository, $postRepo, sys_get_temp_dir(), '/media', 500000); + $service = new MediaService($repository, $postRepo, new LocalMediaStorage(sys_get_temp_dir()), '/media', 500000); $this->expectException(StorageException::class); $this->expectExceptionMessage('Impossible de localiser le fichier temporaire uploadé'); diff --git a/tests/Media/MediaServiceTest.php b/tests/Media/MediaServiceTest.php index 4463f61..aa43a8a 100644 --- a/tests/Media/MediaServiceTest.php +++ b/tests/Media/MediaServiceTest.php @@ -7,7 +7,8 @@ use App\Media\Exception\FileTooLargeException; use App\Media\Exception\InvalidMimeTypeException; use App\Media\Media; use App\Media\MediaRepositoryInterface; -use App\Media\MediaService; +use App\Media\Application\MediaApplicationService as MediaService; +use App\Media\Infrastructure\LocalMediaStorage; use App\Post\PostRepositoryInterface; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; @@ -50,7 +51,7 @@ final class MediaServiceTest extends TestCase $this->service = new MediaService( mediaRepository: $this->repository, postRepository: $this->postRepository, - uploadDir: $this->uploadDir, + mediaStorage: new LocalMediaStorage($this->uploadDir), uploadUrl: '/media', maxSize: 5 * 1024 * 1024, );