Édito rapide : des nouvelles

Comme vous avez pu le constater, le rythme des publications a fortement ralenti ces deux derniers mois. Comme souvent, le temps m'a manqué (me manque...) pour l'écriture. Et oui, la rédaction de billet est une activité relativement chronophage.

J'espère arriver à dégager plus de temps ces prochaines semaines pour pouvoir alimenter mon blog, mais ce n'est pas vraiment gagné. En effet, entre le boulot, la famille et les travaux qui m'attendent à la maison, je ne pense pas pouvoir retrouver un rythme de croisière avant le mois de septembre.

Cela dit, j'ai 5 - 6 brouillons de billets à relire et retravailler donc ce n'est pas non plus une traversée du désert pour ce blog. Il va juste falloir s'habituer à un rythme d'une ou deux publications par mois. ^^

En attendant, j'espère que tout roule de votre côté.

À la semaine prochaine pour un petit billet de la série "En Vrac". :)

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 ? ^^

Symfony 3 : Installation et création d'un projet

Comme annoncé dans un billet précédent, j'ai décidé de me lancer dans l'apprentissage de Symfony.

Jusqu'à présent, j'ai toujours développé mes applications web from scratch, tout en utilisant de multiples packages grâce à composer. C'est donc tout naturellement que l'idée de passer à Symfony a fait son chemin.

L'installation de ce framework est d'une simplicité enfantine. :) Il vous suffit de suivre la documentation disponible sur le site de Symfony. Bien entendu, il vous faudra un environnement Apache, Php, Mysql fonctionnel. Pour ma part, j'utilise Wampserver 2.5... oui, je sais, il faut que je mette tout ça à jour ^^.

Pour résumer, il vous suffit de taper :

c:\wamp\www\php -r "readfile('https://symfony.com/installer');" > symfony

Puis :

c:\wamp\www\php symfony new votre_projet

 

Si tout se passe bien, le tour est joué. :)

 

Alors pourquoi en faire un billet me direz-vous ? Et bien tout simplement car j'ai tout de même un peu lutté pour résoudre le problème dont la solution est pourtant bien en évidence sur la documentation d'installation :

[GuzzleHttp\Exception\RequestException]
  cURL error 60: SSL certificate problem: unable to get local issuer certificate

 

Symfony erreur cURL

 

Dans ce cas-là, il suffit de télécharger le fichier https://curl.haxx.se/ca/cacert.pem et de mettre à jour le fichier php.ini en remplaçant la ligne :

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
;curl.cainfo =

 

Par :

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = "C:\wamp\bin\php\cacert.pem"

N.B. :  Bien entendu, le chemin indiqué variera selon la localisation de votre fichier cacert.pem

 

J'ai donc suivi cette procédure mais malheureusement, cette erreur me sautait toujours au visage. En fait, pour modifier le fichier php.ini, je passais par le raccourcis présent dans la barre des tâches :

Wampserver barre des taches

Or, en procédant de la sorte, ce n'est pas le bon php.ini que je mettais à jour.

Il faut modifier le php.ini directement dans le dossier C:\wamp\bin\php\php5.6.16\ (la version de php peut varier selon la version de wampserver que vous utilisez).

Et le tour est joué. :)

 

Symfony nouveau projet