- Windowing côté rendu : seules les pages dans une fenêtre de ±3 autour de la page visible sont montées en tant que ReaderPage ; les autres sont remplacées par des placeholders dimensionnés via aspect-ratio CSS pour maintenir la hauteur de scroll sans saut - IntersectionObserver utilise le minimum des indices intersectants pour éviter que les entrées simultanées au chargement ne décalent la fenêtre - Prop initialPage passé depuis ChapterReader pour ancrer la fenêtre sur la page courante dès le montage - loading="eager" sur les ReaderPage montés (le windowing est le mécanisme de lazy-loading, pas l'attribut HTML natif) - Prop loading bindé sur les 3 balises <img> de ReaderPage
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.