Files
Mangarr/.cursor/rules/commands.mdc
2025-03-24 17:04:46 +01:00

147 lines
3.8 KiB
Plaintext

---
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