symfony_puzzle

La puissance de Makefile avec Symfony

Spread the love

Objectif : boostez votre projet Symfony avec un Makefile. Nous allons voir les commandes de bases utilisé pour installer un projet.

Les bases :

cible: dépendance
	commande

En exécutant make cible, si le fichier de dépendance est plus récent que le fichier cible, la commande sera exécutée.

En pratique :

vendor: composer.lock
	composer install

Lors de la première exécution de make vendor, le dossier vendor n’existe pas. Quand la commande composer install sera exécutée, le dossier vendor sera créé.

Si vous réexécutez la commande make vendor immédiatement après, rien ne se passera. Car le dossier vendor est plus récent que le fichier composer.lock.

Creation d’un Makefile symfony

vendor: composer.lock
	composer install

install: vendor

Vous avez ici une commande d’installation. Cela vous permet d’installer des dépendances PHP. Comme le fichier install ne sera jamais généré, il faut donc spécifier dans le Makefile que la cible est dite .PHONY (fausse).

Vous ajoutez la ligne ci-dessous au début de votre Makefile :

.PHONY: install

Configuration de l’environnement

.env.local: .env
  cp .env .env.local

Il s’agit d’une simple copie du fichier .env pour avoir une version locale.

Les dépendances front

Procédez de la même façon que pour les dépendances PHP.

node_modules: yarn.lock
	yarn install

Vous éditez le fichier .env.local pour y mettre vos variables d’environnements (les paramètres de votre DB locale par exemple)

install: vendor node_modules .env.local
	vi .env.local


Vous ajoutez ensuite ces lignes pour créer la base de données :

install: vendor node_modules .env.local
	vi .env.local
	bin/console doctrine:database:create --if-not-exists
	bin/console doctrine:migration:migrate --no-interaction
	bin/console doctrine:fixtures:load --no-interaction

Documentation de vos commandes

vendor: composer.lock ## Installation des dépendances PHP
node_modules: yarn.lock ## Installation des dépendances JavaScript 
.env.local: .env ## Creation d'un fichier d'env local

Ces commentaires sont pratiques si vous souhaitez lire ou éditer le fichier Makefile, mais pas si vous souhaitez l’utiliser. Nous allons y remédier :

.PHONY: install help
.DEFAULT_GOAL= help

help:
	@grep -E '(^[a-zA-Z_-]+:.*?##.*$$)|(^##)' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[32m%-10s\033[0m %s\n", $$1, $$2}' | sed -e 's/\[32m##/[33m/'

Vous définirez cette commande comme commande par défaut .DEFAULT_GOAL=help et bien sûr PHONY. Cette commande lira les commentaires du fichier et les affichera à l’utilisateur avec la commande make

Super ! Votre objectif est atteint. Vous pouvez simplement installer l’ensemble du projet avec make install.

chevron_left
chevron_right

Laisser un commentaire

%d blogueurs aiment cette page :