Ma logithèque pour développer en PHP sous Windows

Suite à la lecture du billet de Nicolas Hachet intitulé "Quels outils pour développer en PHP sous Windows ?", j'ai eu envie de faire, moi aussi, le tour de mon environnement de développement.

 

Stack

WampServer

Je vous l'accorde, rien de bien original. À mes débuts, j'installais Apache, MySQL et PHP l'un après l'autre mais je trouvais ça fastidieux. Surtout qu'à cette époque (début des années 2000), il m'arrivait bien souvent de réinstaller Windows. Par la suite, j'ai découvert EasyPhp que j'ai utilisé pendant un certain temps. Je ne me souviens plus de la raison qui m'a poussé à tester WampServer à l'époque mais en tout cas, je ne suis jamais revenu en arrière. Apache, MySQL et PHP installés et prêts à l'emploi en moins de 10 minutes, que demander de plus ? Simple et efficace.

 

Programmation

Cmder

Je vous l'avais déjà présenté en mars 2015. Elle reste ma Console de prédiléction bien que j'ai tendance à utiliser de plus en plus celle intégrée à Visual Studio Code.

 

Visual Studio Code

Visual Studio Code est mon nouvel IDE de coeur. Après des années sur Netbeans, j'ai enfin trouvé un IDE puissant et eye-candy. Netbeans est puissant lui aussi, mais je me suis lassé de son interface old-school ! Cerise sur le gâteau, Visual Studio Code est beaucoup moins gourmand en ressources que Netbeans.

 

Notepad2

Beaucoup utilise Notepad++ pour l'édition rapide de script. Personnellement, j'ai choisi Notepad2 qui est, certes vieillissant et non maintenu depuis 2012, mais qui n'en reste pas moins une solution hyper légère. En plus, il est "livré" avec TortoiseGit alors pourquoi s'en priver. J'ai bien essayé de passer à Notepad++, mais je le trouve beaucoup trop "lourd" pour de l'édition simple et rapide.

 

TortoiseGIT

Je suis un grand fan du système de gestion de versions Git. TortoiseGit permet (entre autre) d'afficher l'état d'un fichier par superposition d'icône dans l'explorateur de fichier de Windows et y ajoute également un menu contextuel pour Git. Bref, un must-have pour les utilisateurs de Git.

 

Base de données

MySQL Workbench

Pendant de nombreuses années, je me suis contenté de PHPMyAdmin. Je le trouvais cependant trop peu ergonomique et trop peu pratique. MySQL Workbench me semble plus adapté et permet de faire énormément de chose, de la simple requête au reverse engineering d'une base de données. Bref, l'essayer c'est l'adopter.

 

SQL Server Management Studio

Rapide raccourci qui risque d'en faire hurler plus d'un ^^ : SQL Server Management Studio est le MySQL Workbench pour SQL Server.

 

Accès distants

Windows Connexion Bureau à distance

Pour le coup, j'utilise l'application native de Windows pour la prise en main à distance de Windows Server. Elle fait le job donc...

 

Filezilla

Inutile d'entrer dans les détails, je pense que tout le monde connaît l'indétrônable client FTP ? Je utilise FileZilla depuis toujours.

 

Navigation et test

Edge, Firefox, Chrome

Edge en première position ? Non, ce n'est pas une erreur. Pendant de longues années, je n'utilisais que Firefox pour la navigation et le développement. A la sortie de Windows 10, j'ai commencé à utiliser Edge sporadiquement car je le trouvais plus rapide et plus eye-candy. Petit à petit, Edge est devenu mon navigateur par défaut. Je continue cependant à utiliser Firefox en navigateur secondaire. Quant à Chrome, je ne l'utilise qu'à des fins de test. En effet, je n'ai jamais aimé ce navigateur. Les goûts et les couleurs... De temps en temps, j'utilise également Vivaldi mais c'est relativement rare.

 

Bureautique et organisation

Microsoft Office 2013

Ne nous leurrons pas : Microsoft Office reste LA référence en matière de suite bureautique. Si dans un cadre privé je recommande chaudement LibreOffice, j'avoue que dans un cadre professionnel, je ne pourrais pas me passer de la suite de Microsoft.

 

OneNote

OneNote est la pierre angulaire de mon organisation. Il m'est réellement indispensable. J'utilise énormément cet outil pour prendre des notes pendant mes développements. Synchronisé automatiquement sur tous mes postes, je retrouve mes notes sur tous mes appareils. Il me permet de structurer mes idées. C'est un outil que j'utilise également à titre personnel. D'ailleurs, la plupart des billets que vous lirez sur ce blog sont initialement rédigés dans OneNote. C'est d'ailleurs mon principal frein à un retour sur GNU/Linux...

 

Redmine

Redmine est un bug-tracker complet et relativement user-friendly. J'en avais tester quelques autres avant d'opter pour cet outil mais je ne les trouvais pas très accessibles aux utilisateurs non informaticiens. Après quelques années d'utilisation, je ne peux que vous recommander chaudement cet outil.

 

Conclusion

Ces différents outils sont ce que je pourrais appeler "mes indispensables". D'ailleurs, si je compare ma logithèque actuel à celle que je vous présentais en octobre 2015, je constate que mise à part mon passage de Netbeans à Visual Studio Code, j'utilise toujours les mêmes outils. :)

Visual Studio Code : personnalisation et extensions indispensables

J'utilise désormais Visual Studio Code (VSCode) au quotidien. Cet IDE est assez complet mais nécessite tout de même quelques extensions pour être confortable dans le cadre de développements PHP.

Logo Visual Studio Code

 

Voici un rapide tour d'horizon des extensions qui me sont aujourd'hui indispensables :

  • Beautify : auto-format le code : Javascript, JSON, CSS, Sass et HTML
  • Better Merge : améliore nettement l'affichage des "merge conflict" (Git)
  • Close Unmodified : permet de fermer les fichiers n'ayant pas été modifiés (Git)
  • minify : supprime les espaces, les retours chariots des fichiers Javascript, Css et Html. Pour ma part, je ne l'utilise pas pour l'Html
  • php cs fixer : auto-format du code PHP
  • TWIG pack : support du format de fichier TWIG. J'ai hésité à mettre cette extension dans cette liste car elle est relatviement catastrophique. L'auto-format des fichiers Twig est catastrophique, voire inutilisable. Je la garde simplement pour la coloration syntaxique qui, elle aussi, est loin d'être aboutie. Pour le moment, je n'ai pas trouvé d'extension vraiment opérationnelle pour le support de Twig.
  • VS Color Picker : permet de sélectionner une couleur depuis une palette dans les fichiers CSS
  • vscode-icons : ajoute des icônes dans l'explorateur de fichiers

 

Concernant la personnalisation de l'outil, j'avoue ne pas l'avoir beaucoup poussé :

{
"editor.fontSize": 12, // Défini la taille de police
"workbench.colorTheme": "Monokai", // Thème dark Monokai
"workbench.welcome.enabled": false, // Désactive l'écran de bienvenue
"editor.wordWrap": "on", // Active le retour à la ligne du texte
"terminal.integrated.fontSize": 13, // Défini la taille de police du Terminal intégré
"workbench.iconTheme": "vscode-icons", // Affiche des icônes dans l'explorateur de fichiers
"editor.renderControlCharacters": true, // Affiche les caractères de contrôle
"editor.renderWhitespace": "all", // Affiche les espaces dans l'éditeur
"editor.renderIndentGuides": true, // Affiche les guides d'indentation
"minify.minifyExistingOnSave": true, // Minifie les fichiers à l'enregistrement (Minify)
"editor.minimap.enabled": true, // Affiche un "minimap" de l'éditeur
"php-cs-fixer.executablePath": "C:\\wamp\\bin\\php\\php-cs-fixer.phar", // Config. Php CS FIXER
"php-cs-fixer.config": "C:\\wamp\\bin\\php\\vscode.php_cs", // Config. Php CS FIXER
"window.title": "${dirty}${activeEditorMedium}${separator}${rootName}${separator}${appName}", // Config. titre fenêtre (Chermin du fichier - projet - Visual Studio Code)
"terminal.external.windowsExec": "C:\\cmder\\Cmder.exe", // Défini le Terminal externe
"files.exclude": { // Fichiers exclus lors des recherches / remplacements
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/.DS_Store": true,
"**/vendor": true
},
"explorer.openEditors.visible": 20 // Nombre de fichiers affichés dans la liste des éditeurs ouverts
}

 

Si vous avez des conseils pour optimiser VSCode, n'hésitez pas... je suis tout ouïe ^^

Visual Studio Code : bye bye Netbeans ?

Il y a quelques semaines, j'ai relancé Visual Studio Code (VSCode) pour voir où en était le développement de cet IDE prometteur. Je l'avais testé d'avril à mai 2015 mais malheureusement, de nombreuses fonctionnalités manquaient alors à l'appel.

Logo Visual Studio Code

 

Cela fait maintenant plus d'un mois que j'utilise VSCode au quotidien et force est de constater qu'il répond désormais à quasiment tous mes besoins.

En mai 2015, je listais les points négatifs de VSCode :

  • Pas d'onglets pour les documents ouverts... la navigation par side-bar n'est pas pratique à l'utilisation : désormais, la navigation se fait soit par side-bar, soit par onglets, soit par les deux. Personnellement, j'utilise cette dernière possibilité.
  • Impossible d'ouvrir plusieurs "Projets" en même temps : malheureusement, il n'est toujours pas possible d'ouvrir plusieurs projets en même temps. Mais je ne perds pas espoir que cette fonctionnalité apparaisse à l'avenir.
  • Pas de fonction "Remove Trailing Space" : cette fonctionnalité est désormais présente
  • Pas de conversion auto des "tab" en "space" : idem
  • La coloration syntaxique est austère à en pleurer : depuis quelque temps déjà, il est possible d'ajouter (voire de concevoir) des thèmes de coloration syntaxique. Pour ma part, j'utilise un thème Monokai et j'en suis totalement satisfait (sauf pour les fichiers Twig, mais ce n'est pas bloquant)
  • Pas de fonctionnalités "History" permettant de faire un "revert" d'un clic : l'intégration des outils git est désormais bien plus ergonomique que dans Netbeans.

Comme vous pouvez le constater, les principaux freins qui m'empêchaient de l'adopter sont aujourd'hui levés.

Cependant, quelques points négatifs subsistent :

  • L'auto-formatage n'est pas géré nativement et passe par des extensions (plugins). Or pour les fichiers Twig par exemple, c'est une catastrophe. Je n'ai pas trouvé d'extension qui auto-format les documents correctement.
  • Pour compléter l'IDE, il est nécessaire d'installer pas mal d'extensions. Or, qui dit extensions, dit développeurs tiers. Malheureusement, certaines d'entre elles ne sont pas correctement maintenues quand d'autres sont à la limite de l'utilisable.
  • Je reviens sur ce point qui pour moi est fondamentale lorsqu'on travaille sur des projets imbriqués : il est aujourd'hui encore impossible d'ouvrir plusieurs projets simultanément. Du coup, il m'arrive encore de devoir ouvrir Netbeans ou Notepad2 pour pouvoir bosser efficacement.

Vous l'aurez compris, je suis plutôt satisfait par Visual Studio Code. D'autant plus que cet éditeur est activement développé et s'améliore mois après mois. Il est d'ailleurs très agréable de suivre son évolution au fil des semaines. J'espère simplement que les quelques points négatifs seront rapidement corrigés. Mais relativisons : quel logiciel peut se targuer d'être parfait ? ^^

Notepad2 installé avec TortoiseGit : enregistrer ses préférences

Comme vous le savez, Netbeans est mon IDE de prédilection. C’est un outil impressionnant de puissance mais force est de constater que lorsqu’on désire simplement consulter un fichier hors projets, il est un peu disproportionné.

Lorsque je désire modifier ou consulter rapidement un fichier (ex. php.ini), j’ai pris l’habitude d’utiliser Notepad2, "livré" avec TortoiseGit.

Notepad2 est un bloc-notes amélioré. Il n’est pas aussi complet que Notepad++ mais est beaucoup plus léger.

La première chose que je paramètre sur un éditeur, quelqu'il soit, c'est le thème. Je suis accroc aux thèmes dits "dark", Monokaï en particulier. Le petit hic lorsque comme moi on l’utilise depuis l’arborescence de TortoiseGit, c’est qu’il n’est pas possible d’enregistrer ses préférences. Du coup, à chaque démarrage de l'application, il faut recharger le thème. Et oui, lorsqu’on tente d’enregistrer ses préférences, on tombe donc inlassablement sur ce message d’erreur :

Notepad2 : erreur à l'enregistrement

 

En fait, il est très simple de contourner ce petit problème. Il suffit de se rendre dans le répertoire contenant les outils de TortoiseGit dont notepad2.exe (par défaut : C:\Program Files\TortoiseGit\bin) et d’y créer un nouveau fichier Notepad2.ini (attention, il faut respecter cette casse).

Une fois cela fait, vous pourrez allègrement configurer Notepad2 et enregistrer vos préférences :

Notepad2 : enregistrement réussi

 

Et le tour est joué ! ^^

Visual Studio Code : Pas pour tout de suite

Finalement, je n'aurai pas tenu longtemps avec Visual Studio Code. Pourtant, je me suis fait violence pour l'utiliser. J'aurai tenu un jour et demi. Changer d'IDE est un exercice difficile. Il faut s'approprier le nouvel environnement, le personnaliser, modifier ses habitudes, etc. J'étais motivé, mais plusieurs points m'ont fait revenir à Netbeans. En vrac :

  • pas d'onglets pour les documents ouverts... la navigation par side-bar n'est pas pratique à l'utilisation
  • impossible d'ouvrir plusieurs "Projets" en même temps
  • pas de fonction "Remove Trailing Space"
  • pas de conversion auto des "tab" en "space"
  • la coloration syntaxique est austère à en pleurer
  • pas de fonctionnalités "History" permettant de faire un "revert" d'un clic
  • etc.

 

Visual Studio Code austère

 

Pourtant, l'outil n'est pas dénué d'intérêt et dispose de quelques fonctionnalités bien pratiques (exemple : la sélection multiple d'un mot surligné via Ctrl + F2 ou Ctrl + Shift + F1). Mais cela ne suffit pas à combler les manques d'un IDE tout juste naissant.

Netbeans est très lourd, c'est indéniable. Cependant, il dispose de nombreux atouts :

  • il est stable (pour peu que l'on dispose de suffisemment de RAM)
  • il dispose "out-of-box" de très nombreuses fonctionnalités
  • il dispose d'extensions abouties et parfaitement intégrées

D'autre part, je suis assez attaché aux interfaces "old-school". Ce que j'apprécie dans Netbeans par rapport à ses concurrents ? Il dispose de fenêtres de configuration et surtout, il gère Git du feu de dieu. Bien que je n'utilise pas vraiment les outils de push, commit et add intégrés à Netbeans, je ne peux me passer de l'onglet "History". Il permet de faire des "REVERT" d'un clic.

 

Netbeans : History

 

J'utilise Netbeans HTML5 & PHP depuis sa version 7 et, jusqu'à présent, je n'ai pas trouvé un IDE qui pousse les outils dédiés au PHP aussi loin... si, Komodo IDE mais son tarif prohibitif a littéralement calmé mes ardeurs.

Bref, pour l'instant, Visual Studio Code manque cruellement de fonctionnalités de base et sa coloration syntaxique est beaucoup trop austère à mon goût. Je vais continuer à suivre l'évolution de cet IDE mais pas en tant qu'utilisateur pour le moment.

Netbeans devrait sortir une nouvelle version en juillet. J'espère qu'elle sera plus eye-candy et plus "légère" que la version 8 sans quoi, je pense qu'ils vont finir par perdre des parts de marché !