--- description: globs: alwaysApply: true --- # Commandes Makefile de Mangarr Toujours chercher si une commande est disponible dans [Makefile](mdc:Makefile). ## Structure Générale Le Makefile est organisé en plusieurs sections distinctes : - Docker 🐳 - Composer 🧙 - Symfony 🎵 - Webpack Encore 📦 ## Variables Principales ```makefile # Exécutables Docker DOCKER_COMP = docker compose DOCKER_COMP_EXEC = $(DOCKER_COMP) exec # Conteneurs PHP_CONT = $(DOCKER_COMP_EXEC) php NODE_CONT = $(DOCKER_COMP_EXEC) node # Exécutables dans les conteneurs PHP = $(PHP_CONT) php COMPOSER = $(PHP_CONT) composer SYMFONY = $(PHP) bin/console SF_MEMORY = $(PHP) -d memory_limit=256M bin/console ``` ## Bonnes Pratiques ### 1. Organisation des Commandes - Regrouper les commandes par catégorie avec des commentaires clairs - Utiliser des variables pour les commandes répétitives - Documenter chaque commande avec `##` pour l'aide automatique - Préfixer les commandes internes avec `_` (exemple: `_check-deps`) ### 2. Paramètres et Options - Utiliser la syntaxe `make command p=value` pour les paramètres - Documenter les paramètres possibles dans les commentaires - Utiliser `?=` pour les valeurs par défaut modifiables ### 3. Dépendances - Définir clairement les dépendances entre les commandes - Utiliser des commandes composées pour les tâches complexes - Éviter les dépendances circulaires ### 4. Documentation - Chaque commande doit avoir une description avec `##` - Inclure des exemples d'utilisation pour les commandes complexes - Utiliser la commande `help` pour afficher la documentation ## Commandes Disponibles ### Docker 🐳 ```makefile build: ## Construit les images Docker up: ## Démarre les conteneurs start: ## Démarre les conteneurs en mode détaché down: ## Arrête et supprime les conteneurs logs: ## Affiche les logs en temps réel sh: ## Se connecte au conteneur PHP ``` ### Composer 🧙 ```makefile composer: ## Exécute une commande composer (c=command) vendor: ## Installe les dépendances ``` ### Symfony 🎵 ```makefile sf: ## Liste/exécute les commandes Symfony (c=command) cc: ## Vide le cache migration: ## Crée une nouvelle migration fixtures: ## Charge les fixtures consume: ## Consomme les messages de la queue ``` ### Webpack Encore 📦 ```makefile npm-install: ## Installe les dépendances npm npm-run: ## Lance le serveur de développement npm-watch: ## Surveille les changements ``` ## Exemples d'Utilisation ### 1. Installation du Projet ```bash make install # Construit et démarre les conteneurs, installe les dépendances ``` ### 2. Développement Quotidien ```bash make start # Démarre les conteneurs make npm-watch # Lance la compilation des assets make consume # Démarre les workers ``` ### 3. Commandes avec Paramètres ```bash make composer c="require symfony/orm-pack" # Ajoute une dépendance make sf c="make:entity" # Crée une entité make test f="ScrapeChapterHandlerTest" # Lance un test spécifique ``` ## Ajout de Nouvelles Commandes ### 1. Structure de Base ```makefile command-name: ## Description de la commande @$(DOCKER_COMP) ... # Commande à exécuter ``` ### 2. Avec Paramètres ```makefile command-with-param: ## Description (p=value) @$(eval p ?=) @$(DOCKER_COMP) ... $(p) ``` ### 3. Commande Composée ```makefile full-install: build start vendor npm-install ## Description complète ``` ## Maintenance ### 1. Nettoyage - Supprimer les commandes obsolètes - Mettre à jour les descriptions - Vérifier les dépendances ### 2. Documentation - Maintenir la section d'aide à jour - Ajouter des exemples pour les nouvelles commandes - Documenter les changements importants ### 3. Tests - Tester les nouvelles commandes - Vérifier les dépendances - Valider les paramètres