Archives par mot-clé : PHP

Tests approfondis de G-WAN

Il y a quelques jours, j’ai découvert G-WAN, un nouveau serveur web « révolutionnaire » d’après son auteur. Ce dernier annonce des performances assez hallucinantes, même face à Apache, NginX ou Lighttpd qui sont les serveurs web les plus connus.

Ce qui m’a vraiment étonné, c’est la différence de performance annoncée :

G-WAN benchmarkJ’estime maîtriser assez bien Apache ou NginX, et je m’étonne évidemment de telles différences de performances. J’ai donc décidé d’enquêter ! Continuer la lecture de Tests approfondis de G-WAN

Migrer de PHP 5.3 à PHP 5.4

Les développeurs de PHP ont choisis de se focaliser sur les performances plutôt que sur les nouvelles fonctionnalités sur la version 5.4 ; mais cette version est également un grand saut sur beaucoup de fonctions dépréciées, qui sont maintenant totalement supprimées.

La migration de la version 5.3 vers la 5.4 est donc une étape délicate (bien plus que de 5.2 vers 5.3), et de nombreux points sont à vérifier avant de se lancer dans l’opération.

Continuer la lecture de Migrer de PHP 5.3 à PHP 5.4

Migrer de PHP 5.2 à PHP 5.3

PHP 5.2 n’est plus maintenu depuis janvier 2011, il devient donc tant de migrer sur la version 5.3 (surtout que dorénavant, la 5.4 est sortie en stable …).

Mais une migration doit toujours se préparer, afin qu’elle se passe le mieux possible sans grosse interruption de service. Voici donc une présentation des incompatibilités entre ces deux versions.

Continuer la lecture de Migrer de PHP 5.2 à PHP 5.3

in_array et le mode strict

[La fonction in_array|http://fr.php.net/in_array|fr] peut avoir un comportement tout à fait étrange lorsqu’on utilise la syntaxe par défaut, qui fait une vérification non stricte : @@var_dump(in_array(‘mouhahaha’,array(0,1,2))); // bool(true)@@%%% Et oui, mon texte est dans ce tableau d’après PHP. Etonnant, non ? Tout simplement parce que PHP va essayer de convertir (cast) les types avant de les comparer. Ma chaîne de caractère, à un moment, vaut ‘true’ et mon 1 vaut ‘true’ aussi, d’où l’égalité.%%% Par contre, si on met les nombres entre quotes comme ceci : @@var_dump(in_array(‘mouhahaha’,array(‘0′,’1′,’2’))); // bool(false)@@%%% Car les chaines étant de même type (string), aucun cast n’a lieu. Pour éviter les effets de bords et autres mauvaises surprises, utilisez le mode strict qui va également comparer le type de la variable. Pour cela, ajouter un 3e argument à in_array comme ceci : %%% @@var_dump(in_array(‘mouhahaha’,array(0,1,2), true)); // bool(false)@@

Une application serveur en PHP

Je viens de tester une solution d’application serveur en PHP. Le principe est simple : une appli php est lancée en mémoire, de manière continue (elle reste en mémoire). A chaque requête sur le serveur web, ce dernier va interroger le script PHP via SCGI (une interface comme CGI ou FastCGI). Celui-ci va alors faire sa sauce et retourner du contenu, mais en restant en mémoire après. Quel intérêt ? Enorme. Par exemple, on peut maintenant mettre du cache en mémoire, et le servir ensuite particulièrement rapidement. Pas besoin de zone mémoire partagée ou autre choses de ce genre. On économise également le temps de « parse » du moteur PHP (transformation du code source en instructions semi-compilées). Le proof of concept existe, il est satisfaisant. Mais mon premier test montre que le plus simple programme PHP provoque déjà des fuites de mémoire. C’est toutefois quelque chose à surveiller de près ! [http://blog.milkfarmsoft.com/?p=51|http://blog.milkfarmsoft.com/?p=51|en]

Smarty : Petits défauts d’un moteur de template archi connu

Cela fait des années que j’utilise Smarty (j’y ai même participé à un moment avec le guru du programme, Messju). Je l’utilise dorénavant quasi quotidiennement dans tous les programmes professionnels que je réalise. Je pense pouvoir dire aujourd’hui que j’en connais (pratiquement) toutes les subtilités. Toutefois, Smarty n’est pas exempt de défauts. Voici pour moi les principaux.
Continuer la lecture de Smarty : Petits défauts d’un moteur de template archi connu

Approche de Memcache avec PHP

Memcache est un module PHP additionnel. C’est un « serveur de cache ». Il s’agit d’un démon UNIX qui tourne sur un serveur et qui enregistre/sert tout type de variable. Voici un aperçu assez complet de son utilisation. Je ne vais pas expliquer son installation, puisque tout est expliqué très clairement sur la documentation de PHP.

Continuer la lecture de Approche de Memcache avec PHP

PHP enfin prêt pour l’applicatif

Lorsqu’on parle de PHP, on pense tout de suite « site internet ». Mais saviez-vous que PHP a également d’autres utilités ? On connaissait déjà la version « cli » qui permet d’executer un script en ligne de commande, avec un affichage optimisé pour (sans les entêtes HTTP entre autre, mais également sans le formatage HTML des messages d’erreurs). Et bien il est également possible de réaliser des applications avec interface graphique.
Continuer la lecture de PHP enfin prêt pour l’applicatif