No description
Updated test cases to assert forbidden responses instead of successful ones for employee site settings. |
||
|---|---|---|
| .gitlab/issue_templates | ||
| .intellipest | ||
| .vscode | ||
| app | ||
| bootstrap | ||
| config | ||
| database | ||
| domain | ||
| infra/Adapters | ||
| lang | ||
| public | ||
| resources | ||
| routes | ||
| shared | ||
| storage | ||
| tests | ||
| .browserslistrc | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .jsconfig.json | ||
| .styleci.yml | ||
| .stylelintrc.json | ||
| artisan | ||
| bun.lock | ||
| CHANGELOG.md | ||
| commitlint.config.cjs | ||
| composer.json | ||
| composer.lock | ||
| Dockerfile | ||
| eslint.config.js | ||
| k8s-queues.sh | ||
| manifest.yaml | ||
| package.json | ||
| phpcs.xml | ||
| phpstan.neon | ||
| phpunit.xml | ||
| pint.json | ||
| production-resources.yaml | ||
| README.md | ||
| rector.php | ||
| REGLES METIERS.md | ||
| RGPD.md | ||
| staging-resources.yaml | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
Boutique Click N Collect Sablé
Table of contents
Frameworks, Platforms and Libraries
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 :
- Isolation totale du Domaine (Le Cœur) : Le code dans
domain/ne doit jamais dépendre du Framework (Illuminate\), deApp\, ou deInfrastructure\. Il ne dépend que de PHP natif. - 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 sesAdapters. - Entités et Objets-Valeurs Purs : Le domaine manipule ses propres Entités et
ValueObjectsvalidés et typés fortement. L'utilisation directe des modèles Eloquent est strictement interdite dans le domaine. - 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.