diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 7e9edd0..9d89ef6 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -17,10 +17,11 @@ runtimes: - python@3.10.8 # This is the section where you manage your linters. (https://docs.trunk.io/check/configuration) lint: + disabled: + - phpstan enabled: - hadolint@2.12.0 - osv-scanner@1.9.1 - - phpstan@1.10.58 - actionlint@1.7.3 - checkov@3.2.276 - git-diff-check diff --git a/README.md b/README.md index 5465867..f33ee47 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,72 @@ dashboard: admin: "true" ``` +## Diagrammes C4 + +### Diagramme de Contexte + +```mermaid +C4Context + title System Context Diagram for AssetGatherer + + Person(dev, "Développeur", "Un développeur utilisant le package pour gérer des ressources conditionnelles dans une application PHP") + + System_Boundary(assetGatherer, "Package AssetGatherer") { + Component(assetGathererCore, "AssetGatherer", "Library", "Un package PHP qui permet de collecter des ressources conditionnelles basées sur des règles de requête HTTP") + } + + System(api, "API HTTP", "API externe", "Reçoit les requêtes HTTP et fournit des informations pour la collecte des ressources") + + Rel(dev, assetGathererCore, "Utilise", "Définit les règles de configuration et interagit avec le package") + Rel(assetGathererCore, api, "Extrait les informations de requête", "Utilise les paramètres de requête HTTP pour filtrer les ressources") + + UpdateElementStyle(dev, $fontColor="black", $bgColor="#ffcc00") + UpdateElementStyle(assetGathererCore, $fontColor="black", $bgColor="#6fa8dc") + UpdateElementStyle(api, $fontColor="black", $bgColor="#93c47d") +``` + +### Diagramme de Conteneur + +```mermaid +C4Container + title Container Diagram for AssetGatherer + + Person(dev, "Développeur", "Configure le package et définit les règles") + + System_Boundary(app, "Application PHP") { + Container(appCode, "Code de l'Application", "PHP", "Application utilisant le package AssetGatherer pour collecter des ressources conditionnelles") + Container(assetGathererLib, "AssetGatherer", "Library", "Package PHP pour la collecte de ressources conditionnelles") + } + + Container(configFile, "Configuration YAML", "Fichier", "Fichier de configuration des règles de collection de ressources") + + Rel(dev, configFile, "Définit") + Rel(appCode, assetGathererLib, "Intègre et utilise") + Rel(assetGathererLib, configFile, "Charge et utilise") +``` + +### Diagramme de Composant + +```mermaid +C4Component + title Component Diagram for AssetGatherer + + Container_Boundary(assetGathererLib, "AssetGatherer") { + Component(configLoader, "Configuration Loader", "PHP", "Charge et analyse le fichier de configuration YAML") + Component(ruleEngine, "Rule Engine", "PHP", "Évalue les règles de collecte basées sur la requête") + Component(assetCollector, "Asset Collector", "PHP", "Collecte les ressources en fonction des règles évaluées") + } + + Container(configFile, "Configuration YAML", "Fichier", "Fichier de configuration des règles de collection de ressources") + Container(httpRequest, "Requête HTTP", "HTTP", "Requête HTTP contenant les informations pour les règles") + + Rel(configLoader, configFile, "Charge la configuration") + Rel(ruleEngine, configLoader, "Utilise") + Rel(assetCollector, ruleEngine, "Interroge et utilise") + Rel(ruleEngine, httpRequest, "Évalue les règles basées sur") + Rel(assetCollector, httpRequest, "Accède aux informations de la requête") +``` + ## Utilisation avec Répertoire de Base Le package `AssetGatherer` prend en charge un répertoire de base pour les _bundles_. En définissant un répertoire de base, tous les chemins spécifiés dans la configuration YAML sont interprétés comme étant relatifs à ce répertoire. @@ -116,7 +182,7 @@ $request = new ServerRequest('GET', '/homepage', [ Le projet inclut une configuration de Dev Container pour un environnement de développement reproductible. -### Prérequis +### Avant de commencer - **Docker** : Assurez-vous que Docker est installé et en cours d'exécution. - **Visual Studio Code** : Utilisez l'extension "Remote - Containers".