Créer une commande pour n98-magerun

magento_logo

L’outil n98-magerun est la console manquante à Magento 1.x. Elle rend accessible en ligne de commande bon nombre de fonctionnalités comme le lancement des scripts de mise à jour, le changement de mot de passe admin, le flush du cache, l’affichage des astuces pour le débuggage des blocks/templates… Nous allons voir qu’il est également possible de créer très simplement ses propres commandes en disposant de toute la souplesse de la console Symfony 2.

Réduction du nombre de clés de cache avec Magento

magento_logo

Magento offre une grande souplesse pour la personnalisation du rendu front office. Chaque catégorie, chaque produit peut avoir un design personnalisé.
En contre-partie, il y a, à minima, autant de clés de cache que de pages CMS, catégories et produits. Si la personnalisation n'est pas utilisée, elle peut êtres désactivée pour améliorer les performances. Je vais donc vous montrer dans ce billet comment réduire les clés de cache pour le front office.

Lumière sur Memcached

memcached-banniere

Pour votre boutique Magento il est commun d'utiliser une base de données Memcached ou Redis. Elle va gérer le cache et/ou les sessions. Le plus souvent utilisées dans des architectures multi-serveurs, ces bases de données améliorent les performances. Elles facilitent également la scalabilité horizontale de votre applicatif.

MageUnit : écrire des tests unitaires Magento en toute simplicité

magento_logo

Magento est solution e-commerce puissante dont la réputation n'est plus à faire. Lorsqu'il s'agit d'écrire des tests unitaires automatisés, on ne peut toutefois pas dire que Magento nous facilite la tâche. Le code natif est souvent peu testable. Les principales raisons : la grande complexité de bon nombre de méthodes et souvent l'impossibilité d'injecter des doublures de test au sein de celles-ci. Si le développeur, en écrivant du nouveau code, peut en maîtriser sa complexité, il est plus difficile pour lui de se défaire du problème d'injection de dépendances qui se posera lors de tout appel à du code natif Magento. Heureusement il existe des solutions à ce problème et MageUnit est l'une d'entre elles.

Optimisation Magento – Mise à plat des tables Customer

magento_logo

Un des atouts de la plateforme E-commerce Magento est son architecture de base de données dite "EAV". Cette architecture offre une grande flexibilité lorsqu'il s'agit par exemple d'ajouter un attribut sur l'entité Client ou Produit. L'avantage vient du fait que chaque ajout d'attribut ne va modifier en rien la structure des tables car la liste des attributs ainsi que leurs valeurs sont stockées dans des tables bien distinctes.

Magento et IPv6 ?

magento_logo

Magento et IPv6 ?

De prime à bord, on pourrait se dire que Magento est une application sur une plateforme LAMP, et qu'ainsi la question ne se pose pas. Néanmoins, Magento utilise à certains endroits des IP (comme par exemple dans la possibilité de définir les IP des développeurs pour réduire le champ d'application des aides aux développeurs), et donc il est quand même intéressant de vérifier si l'on trouve ou non des incompatibilités. Ma démarche s'est divisée en trois temps : maquetter un environnement IPv6, passer les services Mysql et Apache en IPv6, puis essayer de voir les points qui pourraient poser problème lors de l'utilisation de Magento en IPv6.

Retour d’expérience sur un débuggage Varnish

Ce post relate mon retour d'expérience par rapport à un débuggage turpentine/varnish, qui a été l'occasion d'avoir une première approche de ces technologies. Je commencerai tout d'abord par rappeler les aspects théoriques puis pratiques de la mise en place d'un système de cache turpentine/varnish, avant d'expliquer les outils et méthodes qui ont rendu le débuggage possible.

Test unitaire : approche DB

Netapsys fait de l'intégration continue sur certains projets. Cela implique la création de tests automatisés et répétables que l'on peut rejouer sur les codes sources, afin de se prémunir le plus possible d'éventuelles régressions ou effets de bords. Dans le cadre des projets Magento, on travaille habituellement sur des systèmes Linux Apache MySQL PHP au niveau des machines virtuelles de développement, et on travaille massivement avec les données issues de la BD. Cela implique que lors des exécutions des tests, un grand nombre de données peut être modifié.