Blog #Dev

Quel système d’exploitation choisir pour un poste de travail de développeur web ?

J’ai remarqué que sur la plupart des projets basés sur PHP sur lesquels j’ai travaillé, Debian était la distribution utilisée sur la plupart des serveurs des clients. CentOS est tombé à la deuxième place au cours de la décennie, et maintenant que Red Hat l’a volontairement tué en le transformant en une « version de développement de RHEL » en enfonçant le clou en mettant fin prématurément à son support LTS (long-terme), je parie que Debian sera encore plus dominant !

Pour répondre donc à la question posée dans le titre, le meilleur OS (système d’exploitation) pour un poste de travail de développeur web, c’est un système d’exploitation qui se rapproche le plus possible de celui du serveur !

Pourquoi ? Même gestionnaire de packages, et vous pouvez essayer/tester la ligne de commande car le faire sur des serveurs. De plus, permettre aux développeurs de mieux comprendre le fonctionnement de leurs serveurs et de la structure de leurs fichiers…

Mais que faire dans le cas ou vous travaillez pour plusieurs projets et clients avec des systèmes différent ?

Lire la suite

Mon expérience de modding sur un jeu vidéo : Battle for Wesnoth

J’ai déjà parlé dans un précédent article du jeu vidéo Battle for Wesnoth, un jeu de tactique en 2D aux allures de jeu d’échec dans un univers heroic-fantasy.

Sorti en 2003, développé au départ par une seule personne qui voulait développer un jeu open-source avec des mécaniques simples, il a été en constante évolution depuis, enrichi et maintenue par des dizaines de personnes au fil du temps. Et malgé tout ce temps, la commuauté reste très active : il y a même une équipe qui travaille actuellement sur une version 2 basée sur le moteur de jeu open-source Godot.

Pour en savoir ceux qui ne connaissent pas, faites donc un tour sur le site officiel et ses formums, ou la page Steam du jeu.

Le jeu est totalement gratuit et open-source, et le restera. Ces circonstance, ainsi que le succès inattendu du jeu (qui se retrouve dans la plupart des « top jeux gratuit sur PC »), était bien sur propice au modding.

Lire la suite

Apprendre à utiliser les flexbox CSS (presque) en s’amusant

Un tutorial bien fichu qui fera enfin comprendre comment fonctionne les propriétés CSS de placement flex

Voir le site : Flexbox Froggy

C’est mon prénonyme Thomas Park qui a eu l’idée de cette appli web bien sympa, où il faut placer correctement des grenouilles sur des nénuphars en éditant une propriété CSS et on voit en live le résultat. La dernière étape (24 !) est la seule un peu ardue, autant dire que la progression est plutot sympa, et le fait de répéter pas mal de fois les mêmes commandes aident a mémoriser les propriétés.

Have fun !

(English) An alternative of Hungarian notation applied to PHP

On some cases, by example when you works on webservices, data import or an ETL, you can be a little lost between all the variables you use, specifically arrays.

Even if it’s not in the coding standard, I developed a derivative of the Hungarian notation to prefix my variables and find myself there. This notation can be applied in php, but also to any other languages, especially non-typed.

NOTE : I recommend NOT using hungarian notation everytime (for exemple, will be almost useless in a MVC context), but only when it’s really needed.

There is the prefixing I use with PHP variables in that specific cases, depending on their type and semantic meaning :

Scalar types prefix

  • $is, $b : boolean
  • $s : string
  • $i : int (signed)
  • $n : natural (unsigned int)
  • $f : float
  • $fd : float round to 1 decimals
  • $fc : float round to 2 decimals
  • $fm : float round to 3 decimals
  • $m : mixed.
  • $v : void / null.

Read more!

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.

Keep on reading!

Tuto : Installer Composer sur un projet web pour gérer facilement les libraires externes (et internes) de ton framework

Installer composer sur ton poste / serveur

Ton poste doit bien sûr avoir un serveur web qui tourne avec PHP.

Site officiel de Composer : getcomposer.org/download/

Si tu es sous Windows, je te recommande de l’installer via leur « Windows Installer », permettant d’éxécuter composer sur n’importe quel dossier de ton poste, juste en tapant « composer », car il aura correctement intialisé le PATH

Sur un autre OS, le plus simple c’est d’ouvrir une console positionnée dans le répertoire de projet et de taper :

curl -sS https://getcomposer.org/installer | php --filename="composer.phar"

Dans ce cas, il faudra taper « php composer.phar » au lieu de simplement « composer » pour le tuto qui va suivre.

Continuer la lecture de Tuto : Installer Composer sur un projet web pour gérer facilement les libraires externes (et internes) de ton framework

Les tests binaires – une fonctionnalité sous-estimée

Imaginons qu’en tant que développeur (dans le cas contraire, passe à un autre article), on doit réaliser plusieurs actions suivant plusieurs cas de figures possibles (disons, une quinzaine), qui peuvent se combiner.
Et suivant certains cas de figures, certains actions à éxécuter se répètent, et peuvent même se combiner suivant certains cas de figure. Pour ne pas dubliquer le code, on identifie donc 5 blocs d’actions différentes. La situation la plus simple serait donc d’utiliser plusieurs variables : (je vais mettre mes exemples en PHP, mais les tests binaires existent dans tous les langages de programmation dignes de ce nom – déjà si ça existe en PHP…)

Continuer la lecture de Les tests binaires – une fonctionnalité sous-estimée

Symfony versus Symphony, deux frameworks PHP homophones : plagiat ou concours de circonstance ?

Je suis tombé par hasard sur quelque chose plutôt étrange : Symphony, a « XSLT-powered open source content management system ». C’est aussi un framework PHP, qu’on pourrait donc positionner comme un concurrent au projet Symfony CMF.

getsymphony.com

Encore plus troublant, cette annnonce sur la page d’accueil de leur site  :

 Symphony 2.6 is now available  –  11 March 2015

Comme par hasard, le framework homophone suit exactement le même numéro de version que Symfony, à un mois d’intervalle…

Continuer la lecture de Symfony versus Symphony, deux frameworks PHP homophones : plagiat ou concours de circonstance ?

Anticiper la migration entre Symfony 2 et 3 en activant la nouvelle structure de répertoires

Symfony, le framework PHP made in France a le vent en poupe et amène dans son sillage le PHP à l’ère industrielle (bon, c’est vrai que Zend l’avait déja aidé à traverser). Sa version 2.6 est sortie depuis quelques semaines mais papa Sensiolabs a semble-t-il déjà bien entamé le travail sur la version 3…

Il y a toutes les chances que les projets v2 soient migrables assez facilement sur v3, mais que la structure des répertoires systèmes changent un peu, car pour l’instant ça reste assez mal structuré : par exemple il y a un peu trop tout et n’importe quoi dans /app/, du cache, des logs, la console, et l’emplacement des fichiers de config globaux ne suit pas la norme des bundles.

Lors d’une release  de Symfony 2.4 ou 2.5, l’assistant vous demandait si vous vouliez utiliser la « nouvelle structure de répertoire v3 » lors de la création d’un nouveau projet. Ça changeait pas mal de choses sur la structure, sans toutefois être documenté ; c’est sûrement pour ne pas embrouiller les esprits que Sensiolabs a vite retiré cette option. C’est dommage, car c’est la structure prévue pour le futur de Symfony.

Mais pourtant tu peux continuer à utiliser cette option en définissant la variable d’environnement SENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE=true avant de lancer l’assistant de création de projet.

Continuer la lecture de Anticiper la migration entre Symfony 2 et 3 en activant la nouvelle structure de répertoires

Une classe PHP pour pisser du xml

Si vous avez besoin d’une classe utilitaire pour générer proprement et basiquement un fichier XML sans vous embarrasser de la lourdeur syntaxique d’un SimpleXML : je vous met à disposition une classe simple que j’avais créée il y a quelques années et dont je m’étais servis sur quelques projets. Vous pouvez en faire ce que vous voulez.

Télécharger la classe

Je n’arrive malheureusement pas a retrouver la version « documentée » de la classe. 🙁