Aller au contenu | Aller au menu | Aller à la recherche

mercredi, 9 décembre 2009

Zend Framework : Utilisation des tags dans Zend_Cache

Il y a un petit truc assez sympa avec la gestion des caches dans Zend Framework (et donc Zend_Cache) et c'est les tags.

Les tags sont peut-être ignorés par beaucoup parce que ce n'est que le 3ème paramètre et qu'il n'est pas obligatoire. Voici un petit exemple de leur utilité.

mardi, 8 décembre 2009

IE6 ou le temps qu'on perd, épisode 2 !

Microsoft s'y met également en poussant ses propres utilisateurs à mettre à jour son explorateur.

Une bonne nouvelle pour nous autres développeurs !

Et pour information, il suffit de se rendre ici pour mettre à jour son explorateur vers quelque chose de plus utilisable et supportable.

Il faut au minimum Windows XP avec le service pack 2.

Reste plus qu'à espérer que les grandes entreprises à l'infrastructure lourde leur emboiteront le pas car finalement, c'est ces réseaux qui évoluent le moins vite et surtout qui empêchent leurs utilisateurs de se mettre à jour.

vendredi, 9 octobre 2009

Netbeans, mon nouvel IDE PHP

netbeans.gif

Voilà près de 5 ans que j'utilise tous les jours Eclipse avec le module phpeclipse pour réaliser mon travail. Je dois dire que au début, j'étais plutôt satisfait de Eclipse qui était, et d'assez loin, le meilleur éditeur PHP.

Eclipse a placé mes exigences en matière d'éditeur de code assez hautes. Comment se passer du saut sur la déclaration d'une fonction, de l'explorateur de fonctions, de l'aide contextuelle et des templates de code quand on y a goûté ?

mercredi, 16 septembre 2009

Zend Certified Engineer - PHP 5

php5-zce-logo-new.gif Après pas mal de tergiversations, me voici certifié ingénieur PHP 5 par Zend. Je me ferai un plaisir de faire un complément à ce billet très bientôt avec quelques tips & tricks à ce sujet. Pour l'instant, je suis juste content. :)

vendredi, 24 juillet 2009

Zend Framework - Optimisation des performances, exemple

Voici un petit exemple d'optimisation réalisé. J'ai analysé avec XDebug et WinCacheGrid l'appel à une page. Cette page affiche quelques centaines de lignes provenant d'une table d'une base de données.

Chacune des lignes est affichée avec un partial ce qui me permet d'utiliser le même affichage dans deux pages différentes. Les données de chaque ligne sont accédées via les getters et setters de Zend_Db_Table_Row et Zend_Db_Table_Rowset.

Voici tout d'abord l'analyse de la page sans aucune optimisation.

zend_opti_before.jpg

On constate un temps d'exécution de 488ms. En rouge, j'ai surligné les processus liés aux getters et en jaune ceux liés aux partials. On peut constaté d'ores et déjà qu'ils sont nombreux et au sommet des processus les plus consommateurs.

Voici, ensuite, le résultat après suppression des getters en utilisant des tableaux PHP standard à la place d'objet Zend.

zend_opti_after_getter.jpg

On est passé de 488ms d'exécution à 379ms. Un gain de l'ordre de 20%.

Ci-dessous, la même analyse après l'optimisation des partials et l'utilisation d'includes.

zend_opti_after_partial.jpg

Là, on gagne presque 30% de performance en passant à 225ms de temps d'exécution. Ce qui fait, au total, 50% de gain par rapport au code original.

Voici un petit code qui vous aidera à récupérer le chemin vers vos fichiers de script et donc utiliser un include à la place du helper partial :

$moduleDir = Zend_Controller_Front::getInstance()
                                  ->getControllerDirectory('default');
$viewsDir = dirname($moduleDir) . '/views/scripts';
<?include($viewsDir . '/controller/_partial.phtml')?>

Bien entendu, on peut discuter de la manière de faire. Mais ce que j'essaie de démontrer est plutôt la lourdeur des tâches réalisées par Zend. Par exemple, on constate le chargement des plugins, le clonage des variables de la vue, le chargement des helpers, etc... à chaque utilisation de partial()

A utiliser, donc, avec parcimonie et toujours préférer les méthodes efficaces sur des codes récurrents.

- page 1 de 8