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é.
## Changements principaux
### Domaine Scraping
- 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
### Événement partagé
- ChapterScraped déplacé dans Domain/Shared/Domain/Event/
avec jobId, chapterId, pagesDirectory, pageCount
- Routing Messenger ajouté
### Domaine Manga
- Ajout : ChapterScrapedEventListener + ChapterScrapedMessageHandler
pour mettre à jour Chapter.pagesDirectory via le Repository Manga
### Domaine Reader
- 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
### Architecture
- phparkitect.php : App\Domain\Shared\Domain\Event autorisé dans
les couches Application (correction violations pré-existantes
ChapterImported/VolumeImported + nouvelle ChapterScraped)
## Tests
- 218/218 tests passent (+3 nouveaux)
- InMemoryImageStorage créé pour les tests unitaires
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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 :
-
Clonez le dépôt du projet :
git clone git@git.homelab.nestor-server.fr:2222/colgora/Mangarr.git -
Copiez le fichier
.env.exampleen.env:cp .env.example .env -
Modifiez les credentials dans le fichier
.envselon vos besoins. -
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.