ext.jeremy.guillot@maxicoffee.domains c311cfe80c refactor(scraping): DDD refactoring — stockage images individuelles
Le domaine Scraping ne génère plus d'archives CBZ ni ne modifie les
entités du domaine Manga directement. Il scrape, stocke les images
individuellement, et émet un événement partagé.

- Suppression : CbzGeneratorInterface, CbzGenerator, CbzGenerationRequest,
  CbzPath, CbzGenerationException
- Suppression : save() de ChapterRepositoryInterface (Scraping)
- Suppression : cbzPath du modèle Chapter (Scraping)
- Ajout : ImageStorageInterface + LocalImageStorage
  (stockage dans {MANGA_DATA_PATH}/pages/{chapterId}/)
- ScrapeChapterHandler utilise ImageStorage au lieu du générateur CBZ

- ChapterScraped déplacé dans Domain/Shared/Domain/Event/
  avec jobId, chapterId, pagesDirectory, pageCount
- Routing Messenger ajouté

- Ajout : ChapterScrapedEventListener + ChapterScrapedMessageHandler
  pour mettre à jour Chapter.pagesDirectory via le Repository Manga

- LegacyChapterRepository en dual-mode :
  pagesDirectory en priorité, fallback cbzPath (backward compat)
- Requêtes prev/next : filtrent pagesDirectory IS NOT NULL OR cbzPath IS NOT NULL
- ChapterContext expose pagesDirectory

- phparkitect.php : App\Domain\Shared\Domain\Event autorisé dans
  les couches Application (correction violations pré-existantes
  ChapterImported/VolumeImported + nouvelle ChapterScraped)

- 218/218 tests passent (+3 nouveaux)
- InMemoryImageStorage créé pour les tests unitaires

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 20:52:16 +01:00
2026-02-08 22:45:57 +01:00
2026-02-08 23:11:17 +01:00
2024-06-03 17:36:22 +02:00
2024-06-27 11:28:45 +02:00
2026-02-08 23:28:35 +01:00
2024-06-03 17:36:22 +02:00
2026-02-11 16:13:01 +01:00
2024-06-03 17:36:22 +02:00
2024-06-03 17:36:22 +02:00
2024-06-19 18:04:30 +02:00
2024-06-03 17:36:22 +02:00
2025-02-01 17:03:28 +01:00
2026-02-08 21:56:38 +01:00
2025-02-01 17:02:55 +01:00
2026-02-11 15:53:17 +01:00
2026-02-08 21:47:30 +01:00
2026-02-08 18:17:44 +01:00
2026-02-08 21:56:38 +01:00

Mangarr

Ce projet est un fork du template Symfony disponible à dunglas/symfony-docker, adapté aux besoins. Il intègre Symfony 7.0.2 et est configuré pour fonctionner avec Docker, offrant une mise en place rapide et efficace pour le développement.

Prérequis

Avant de commencer, assurez-vous que les outils suivants sont installés sur votre machine :

  • Docker
  • Makefile

Installation

Pour mettre en place le projet, suivez ces étapes :

  1. Clonez le dépôt du projet : git clone git@git.homelab.nestor-server.fr:2222/colgora/Mangarr.git

  2. Copiez le fichier .env.example en .env : cp .env.example .env

  3. Modifiez les credentials dans le fichier .env selon vos besoins.

  4. Lancez l'installation des dépendances et la configuration du projet : make install

Si vous rencontrez des problèmes de droits sur le projet, exécutez : make fix-permissions

Utilisation

Pour démarrer le projet, utilisez : make start

Pour arrêter le projet, utilisez : make stop

Pour voir d'autres commandes utiles, vous pouvez lancer : make help

Composants

Le projet comprend les technologies et outils suivants :

  • Symfony 7.0.2 : Framework PHP pour la construction d'applications web.
  • PostgreSQL 16 : Système de gestion de base de données relationnelle.
  • Caddy : Serveur web moderne, sécurisé et facile à utiliser.
  • FrankenPhp : Environnement d'exécution pour applications PHP.
  • phpmd (PHP Mess Detector) : Outil d'analyse statique de code PHP.
  • php-cs (PHP CodeSniffer) : Outil pour détecter les violations de standards de codage PHP.

Administration de la Base de Données

Admirer, équivalent de PhpMyAdmin, est disponible sur le port 8080 pour la gestion de la base de données. Les credentials sont spécifiés dans le fichier .env. Utilisez database comme nom de serveur, qui correspond au nom du conteneur Docker de la base de données.

Description
No description provided
Readme 12 MiB
Languages
PHP 63%
Vue 26%
JavaScript 10%
Makefile 0.4%
Dockerfile 0.3%
Other 0.3%