En ce début d'année, après une première migration, puis une deuxième et une troisième, j'ai de nouveau migré mon serveur dédié sur une nouvelle machine, avec plus d'espace disque, plus de mémoire, plus de performance processeur et pour moins cher. Que demander de plus ? J'en ai profité pour passer […]
PHP
Phyxo et PHP 8
Phyxo fonctionne sans aucun soucis avec PHP 8, sorti au mois de novembre 2020. Phyxo nécessite php 7.3 au minimum. D'ailleurs je vais changer ce minimum et passer à php 7.4 à minima car le support actif de php 7.3 s'est arrêté au mois de janvier 2021. La version 7.3 ne reçoit plus que des patchs de […]
Atoum ou PHPUnit ou les deux ?
Depuis que j'ai commencé le développement de Phyxo, j'ai utilisé Atoum pour faire des tests unitaires. J'aime l'approche plus "moderne" de la façon d'écrire les tests. Mais depuis quelques temps je commence à écrire des tests fonctionnels de mes contrôleurs et du coup, j'utilise aussi […]
Travailler simultanément sur plusieurs branches d'un même dépôt git
Dans le cadre du développement de Phyxo, il m'arrive de devoir travailler sur plusieurs branches en même temps pour de multiples raisons : vérifier "visuellement" que n'ai rien cassé entre deux versions vérifier un comportement que je trouve étrange sur la version en cours de […]
Mettre à jour les traductions d'un module drupal
Lorsqu'on développe un module drupal, les traductions ajoutées au fur et à mesure ne sont pas prises en compte automatiquement. drupal ne prend en compte les traductions d'un module que lors de l'installation de celui-là. En cours de développement cela peut rapidement devenir pénible (pour rester poli !) de devoir installer/déinstaller le module à chaque mise à jour...
Pourquoi faut-il bannir l'arobase de tout code PHP ?
Nombreux sont les développeurs (débutants ou non) qui utilisent l'arobase (@) pour masquer les erreurs. C'est un peu cacher la misère et c'est surtout un énorme problème lorsqu'il s'agît de trouver un bug dans un code où fleurissent les arobases.
symfony : hydrater un objet à la main
En utilisant symfony, on ne fait plus réellement de sql du fait de la couche d'abstraction ORM (Propel ou Doctrine). On ne travaille qu'avec des objets. Cela facilite grandement la vie et contribue pour une grande part à la rapidité de développement. Mais cela ne répond pas toujours à tous les besoins...
Envoyer des mails avec php
Quoi de plus simple que d'envoyer des mails avec php avec la fonction mail ! Les choses se compliquent légèrement si on n'a pas de serveur de mail ! Et c'est peu de le dire. Evidemment on peut se lancer dans l'installation d'un serveur de mail (sendmail ou postfix par exemple) mais ce n'est pas à la portée de monsieur tout le monde si on ne veut pas servir de relais de spam! Une solution simple: nullmailer
Mettre fin à une authentification http
Le but du jeu est de mettre fin à une authentificaiton http faite avec le mécanisme des fichiers .htaccess
Qu'est-ce qu'un singleton ?
Le singleton est un modèle de conception (design pattern pour les grands bretons). En clair c'est une façon éprouvée de résoudre un problème. Avec le sinleton on cherche à n'avoir qu'une seule instance d'un même objet.
Faut-il utiliser $_REQUEST ?
Depuis que je suis tout petit, j'utilise $_GET pour les données provenant de l'url et $_POST pour celles provenant de mes formulaires (utilisant la méthode "post"!).
En lisant divers articles, je me demande si je ne prends pas un peu la tête et si je ne devrais pas utiliser $_REQUEST quelle que soit la provenance des données. Peu importe la provenance, de toute façon il faut filtrer, vérifier, contrôler la cohérence de ces données.
Ne pas réinventer la roue.
On répète souvent que lorsqu'on fait un script il ne faut pas réinventer la roue et utiliser au maximum les fonctions natives du langage. Cela a de multiples avantages: c'est optimisé, sans bug,... Mais on n'imagine pas toujours lorsqu'on est débutant à quel point cet adage doit être pris au sérieux!
Quel est mon mot de passe ?
Dans une interface d'administration qui se respecte, on doit pouvoir à un moment créer des comptes. Il est souvent agréable de se voir proposer un mot de passe aléatoire. En général, je n'utilise pas un mot de passe complétement alétaoire: je supprime les caractères ambigus tels que 0, 1, i, j, l, […]
Développement piloté par les tests.
Il ne semble pas évident au premier abord de faire des tests du code que l'on écrit. En général, on se borne à vérifier qu'il n'y a pas d'erreurs de syntaxe. On vérifie que les 3 ou 4 pages que l'on vient de modifier fonctionnent toujours de la même façon. Cette manière de fonctionner atteint rapidement ses limites au fur et à mesure que l'application grossie. Comment se rappeler que le code écrit aujourd'hui n'aura pas d'impact sur le code écrit il y a 6 mois ? Sans tests exhaustifs, c'est tout simplement impossible.
A la découverte de php5
La version 5 de PHP est sortie depuis plus d'un an, le 13 juillet 2004 exactement. Je ne parlerais pas des nombreux changements tellement c'est énorme. Mais de quoi je vais parler, alors ? De ma déouverte de php5. Je me suis mis à php5 voici quelques mois. L'installation sur HP-UX n'a pas été une […]
Précédence des opérateurs
Il existe en PHP deux types de "ET" (and et &&) et de "OU" (or et ||). La raison est qu'ils ont des priorités différentes. Le and et le or ont une priorité plus faible que l'opérateur = alors que le && et le || ont une priorité plus élevée que le =. Par exemple si […]
Afficher une arborescence avec menu et sous-menu.
On est souvent confronté à ce type de problème: afficher sous forme d'arbre (liste ul/li par exemple) un menu ou un forum. On récupère les informations d'une base de données où chaque enregistrement comprend les champs suivants (au minimum): id, label, parent. La requête de sélection est toute […]