Un modèle de fichier .gitignore pour partir sur de bonnes bases sur tes projets PHP

Si tu versionnes tes projets PHP avec Git, voici des modèles de fichier .gitignore (voir documentation officielle) que j’utilise depuis longtemps et qui évite de versionner des fichiers qui n’ont rien à faire sur le dépôt (fichiers temporaires des OS, de l’IDE…).

Ces modèles diffèrent des autres modèles que tu pourra trouver sur des plus plus connus, comme Github ou gitignore.io, dans le sens ou j’utilise des expressions régulières faisant que les règles sont adaptés à la plupart des projets, tout en contenant moins de lignes. Plus d’intelligence, quoi.

Bien sûr ce fichier est un modèle, il faudra quand même sûrement que tu rajoutes des règles spécifiques a ton projet. Certains fichiers peuvent être versionnés ou non suivant ta vision du versioning et la phase de ton projet (dev initial, tma…) : les lignes dans ce cas sont son commentés par défaut (voir lignes commençant par un seul #), a toi de voir si tu les actives ou non.

Comment ajouter facilement ces règles dans mon .gitignore

J’ai créé un projet projet GitHub dédié, contenant également les instructions ci-dessous en anglais).

Deux méthodes de copie sont disponible pour chaque fichier

  • Méthode 1 : avec un terminal positionné sur la racine de votre projet web, contenant déjà ou pas un fichier nommé .gitignore (si un fichier est déja présent, du contenu va être ajouté à la fin) et taper la ligne de commande indiquée. A noter que cette ligne de commande ne fonctionne que sur un poste configuré avec un serveur web actif et php-cli installé., si ce n’est pas le cas utilisez la méthode 2 (plus fastidieuse)
  • Méthode 2 : ouvre le lien avec un navigateur et copier-coller manuellement le contenu à la fin de votre fichier .gitignore

Règles générales pour les projets PHP

Méthode 1 :

php -r "readfile('https://raw.githubusercontent.com/tbondois/gitignore/master/php.gitignore');">>.gitignore

ou Méthode 2 : voir le fichier

Si ce n’est pas le cas, il te suffit de copier manuellement l’url dans readfile('') dans un navigateur et copier-coller tout le contenu dans votre fichier .gitignore.

Quelques lignes sont présentes mais commentées ; comme expliqué un peu plus haut, il s’agit des fichiers qui peuvent dans certains cas, vouloir être ignoré, donc à toi de les décommenter si c’est le cas.

Attention : git-ignorer le fichier .gitignore peut être déroutant pour tes collègues 🙂

gitignore

Extensions spécifiques à quelques frameworks

En addition, tu dois rajouter ce qui est spécifique au framework de ton projet. Généralement, les frameworks te mettent à disposition un .gitignore très basique. En voici des versions plus évolués, tout en supprimant les redondances avec les lignes précédentes. A insérér à la suite :

Projets Symfony 2, 3, Silex, OroPlatform, AkeneoPIM

Méthode 1 :

php -r "readfile('https://raw.githubusercontent.com/tbondois/gitignore/master/symfony2.gitignore');">>.gitignore

ou Méthode 2 : voir le fichier

<

h3>Projets Laravel / Lumen

Méthode 1 :

php -r "readfile('https://raw.githubusercontent.com/tbondois/gitignore/master/laravel.gitignore');">>.gitignore

ou Méthode 2 : voir le fichier

Projets Magento 1

Deux configurations possible :

Solution A : Tu veux aussi versionner le noyau du framework dans ton projet :

Méthode 1 :

php -r "readfile('https://raw.githubusercontent.com/tbondois/gitignore/master/magento1.gitignore');">>.gitignore

ou Méthode 2 : voir le fichier

Solution B : Tu préféres exclure tous les fichiers du noyau et ne versionner que ton propre code :

Méthode 1 :

php -r "readfile('https://raw.githubusercontent.com/github/gitignore/master/Magento.gitignore');">>.gitignor

ou Méthode 2 : voir le fichier

Projets Magento 2

Méthode 1 :

php -r "readfile('https://raw.githubusercontent.com/tbondois/gitignore/master/magento2.gitignore');">>.gitignore

ou Méthode 2 : voir le fichier

WordPress 4

Méthode 1 :

php -r "readfile('https://raw.githubusercontent.com/tbondois/gitignore/master/wordpress4.gitignore');">>.gitignore

Méthode 2 : voir le fichier

Un commentaire ?