Comment je démarre un projet en PHP
18 janvier 2018
Lorsque je commence à développer une nouvelle application, j’ai pris l’habitude de tout de suite effectuer quelques actions et de mettre en place des outils. Je vous propose donc de les partager avec vous.
Première chose que je fait, je versionne mon projet en local. L’avantage avec git est que cela se fait en une seule commande. Rien de plus simple donc pour initialiser mon projet sous git : je me place dans le répertoire de mon projet et j’exécute la commande suivante :
git init
Voilà c’est fait ! Je peux désormais versionner mon application au fur et à mesure et revenir en arrière si besoin. Et si je le souhaite, je pourrai le sauvegarder ou le partager plus tard sur un serveur (comme GitHub, par exemple).
Après quelques années à écrire du code sans réelle règle, je me suis aperçu que lorsqu’on travaillait en équipe, les manières d’écrire le code variaient beaucoup d’une personne à l’autre. Et cela s’est beaucoup plus ressenti lorsque, dans mon job, nous avons commencé à faire de la review de code. Les différentes façons d'écrire rendait la relecture un peu plus difficile. Nous avons donc choisi une norme d’écriture (par langage / techno) que nous suivons désormais.
L’autre avantage est que si vous développez une application open-source, vous pourrez indiquer à vos éventuels contributeurs de respecter la norme choisie afin d'avoir un code uniforme.
J’applique donc désormais tout le temps pour chaque nouveau projet une norme d’écriture. Je passe par plusieurs moyens pour la contrôler :
phpcs src -n --colors --error-severity=1 --standard=vendor/m6web/symfony2-coding-standard/Symfony2
L'avantage d'avoir un outil en ligne de commande est qu'il peut être lancé automatiquement via un hook git ou par un serveur d'intégration continue.
Même si je ne pratique pas strictement le TDD, je mets tout de suite en place un outil de tests unitaires. Tant qu’à être dans la configuration de mon projet, autant le faire même si mes premiers développement ne sont pas forcément testés. Au moins je n’ai aucune excuse pour ne pas écrire de tests. De la même manière que pour la norme d'écriture, j'exécute mes tests unitaires en ligne de commande et pourrais donc facilement le lancer automatiquement. Pour le PHP, j'utilise principalement atoum.
PHP, comme d'autres langages, possède une notion d'espace de nom. Pour citer la documentation :
Les espaces de noms PHP fournissent un moyen pour regrouper des classes, interfaces, fonctions ou constantes.
Afin de pouvoir utiliser facilement ces espaces de nom, il est nécessaire d'utiliser un autoloader. Et ça tombe bien, un outil permet d'en générer un très facilement : composer.
Composer est un outil de gestion de dépendances qui apporte aussi d'autres fonctionnalités comme la mise en place d'un autoloader. Pour ça, rien de plus simple.
composer init
vim composer.json
"autoload": {
"psr-4": {
"Mon\\Namespace\\": "src"
}
}
composer install
include_once('./vendor/autoload.php');
Afin d'éviter à refaire à chaque fois toute cette configuration, j'ai créé un projet template pour PHP : https://github.com/klnjmm/template-php
git clone https://github.com/klnjmm/template-php.git
cd template-php
Modifier dans le fichier composer.json :
Puis lancer
make init
make up
Voilà il ne reste plus qu'à coder !
Tu as vu sur Twitter mes conseils et astuces sur le PHP et tu aimerais les recevoir directement dans ta boîte mail ?
Ou justement tu n'as pas Twitter (ou tu ne me suis pas encore ^^) et tu aimerais toi aussi recevoir ces conseils ?
Inscris-toi alors à ma dev letter pour recevoir régulièrement dans ta boîte mail mes conseils, mes nouveaux articles, des vidéos à voir, des outils à découvrir et encore bien d’autres choses.
#Ressources