147 lines
3.8 KiB
Plaintext
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 |