ldc-boutique-cnc-sable/README.md
2026-10-27 09:58:12 +01:00

3.2 KiB

Boutique Click N Collect Sablé

Table of contents

Frameworks, Platforms and Libraries

SASS TypeScript Vite PHP Laravel Vue.js

Installation

cp .env.example .env
vi .env
composer install
php artisan storage:link
npm i
npm run prod

Tests

cp .env.example .env.testing
vi .env.testing
composer install
php artisan storage:link
composer run test

Deployment

php artisan schedule:run

Available Commands

php artisan ldcweb:admin-secure-sync

Créer un utilisateur :

php artisan create:admin

Changelog

See the CHANGELOG.md file for details.

Architecture

Ce projet suit les principes de l'Architecture Hexagonale (Ports et Adapteurs) et du Domain-Driven Design (DDD). L'objectif est d'isoler au maximum la logique métier de l'infrastructure (framework Laravel, base de données, requêtes réseau) pour avoir un code robuste, pérenne et facile à tester.

Règles d'Or (Verrouillées par les tests)

Afin de faciliter l'onboarding et d'assurer que l'architecture ne dérive pas, Pest Arch et PHPStan (Level 9) garantissent les principes suivants à chaque commit :

  1. Isolation totale du Domaine (Le Cœur) : Le code dans domain/ ne doit jamais dépendre du Framework (Illuminate\), de App\, ou de Infrastructure\. Il ne dépend que de PHP natif.
  2. Inversion des Dépendances : L'Application et l'Infrastructure dépendent du Domaine, et jamais l'inverse. Le domaine expose des Ports (Interfaces) que l'infrastructure implémente via ses Adapters.
  3. Entités et Objets-Valeurs Purs : Le domaine manipule ses propres Entités et ValueObjects validés et typés fortement. L'utilisation directe des modèles Eloquent est strictement interdite dans le domaine.
  4. Conventions de Nommage : Chaque composant a une place et un suffixe stricts : *Service, *Repository, *Exception, *Dto. Les tests échoueront si la convention n'est pas respectée.