Le programme Make permet de décrire des ensembles de lignes de commandes et pouvoir les rappeler dès que nécessaires. Cela peut être pratique avec Symfony pour pouvoir regénérer la base de données dans son ensemble ou initialiser le projet après l’avoir cloné de Github.
Installation
Vous pouvez installer Make via Chocolatey (Windows) grâce à la commande :
choco install make
ou via Homebrew (Mac) avec la commande :
brew install make
Fichier Make
Vous allez pouvoir créer un fichier Make à la racine de votre projet, appelez le makefile.
Le contenu de ce fichier peut, par exemple être :
## Variables
SYMFONY_CONSOLE = symfony console
cache-clear: ## Clear cache
$(SYMFONY_CONSOLE) cache:clear --no-warmup --env=dev
## --- 📊 Database ---
database-init:
$(MAKE) database-remove
$(MAKE) database-create
$(MAKE) database-migrate
$(MAKE) database-fixtures-load
database-remove: ## delete database
$(SYMFONY_CONSOLE) d:d:d --force --if-exists
database-create: ## create database
$(SYMFONY_CONSOLE) d:d:c --if-not-exists
database-test: ## test la connexion à la base de données
$(SYMFONY_CONSOLE) doctrine:query:sql "SELECT 1"
migration: ## make migration
$(MAKE) database-migration
database-migrate: ## Migrate migrations
$(SYMFONY_CONSOLE) d:m:m --no-interaction
migrate: ## Alias: database-migrate
$(MAKE) database-migrate
database-fixtures-load: ## Load fixtures
$(SYMFONY_CONSOLE) d:f:l --no-interaction
fixtures: ## Alias : database-fixtures-load
$(MAKE) database-fixtures-load
Il est possible de créer des variables pour ne pas répéter certaines parties de commandes (ligne 2). Vous pouvez utiliser cette variable en plaçant son nom dans la structure $( ) (ligne 5).
Pour indiquer un nouveau bloc de commandes, il faut lui donner un nom suivi de : puis les lignes de commandes à exécuter.
Vous pouvez aussi faire des sous-blocs (ligne 11) et les appeler en ajoutant $(MAKE) devant (ligne 7).
Utilisation du fichier
Dans votre terminal, vous pouvez appeler un bloc de commandes de la manière suivante :
make nombloc
en remplaçant nombloc par le nom du bloc ou sous-bloc que vous souhaitez lancer.
