Formation Magento
Dev

Formation Magento

Magento AcademyLa récente « Magento Academy » propose depuis peu une formation développeur en 5 jours (à Paris) à laquelle j’ai eu le plaisir d’assister la semaine dernière (semaine du 15 au 19 février). Les cours sont donnés par Gabriel Bouhatous, expert magento très actif de la communauté et co-organisateur des Bargentos. Voici un petit résumé de cette semaine.

Jour 1 : Installation de Magento

Tout d’abord, félicitation à l’équipe pour sa réactivité. En effet, 3 jours plus tôt (le vendredi 12 février) sortait une nouvelle version de Magento CE, la 1.4.0. Et ce lundi 15 février, nous apprenons que la formation portera sur cette nouvelle version et que même les supports de cours ont été mis à jour. Vous trouverez plus d’informations sur la 1.4 ici.

Ce premier cours commence par les présentations et visiblement le niveau des participants est très varié. Certains sont débutants en Php et avec les concepts objets. Pour ma part, je suis certifié en Php et sur le Zend Framework (sur lequel est construit magento). Nous enchaînons avec un petit historique et des exemples de sites sur magento.

L’essentiel de la journée est consacrée à l’installation de magento. Pour cela, l’académie met à disposition des postes Windows 7 avec tous les outils nécessaires : Zend Studio & Zend Server. Personnellement, j’ai pris mon mac, je n’arrive plus à me servir d’un PC depuis une année 😉 En parallèle de cette installation, les outils de développement Zend sont présentés, notamment les fonctions de profilage du Zend Server (la version payante est impressionnante !) et l’utilisation du Zend Studio. Gabriel évoque également la terminologie magento ainsi que quelques concepts objets comme le MVC. Pour finir, nous testons les fonctionnalités d’aide au développement offertes par magento, telles qu’un profilage intégré ou la visualisation des noms de blocks.

En résumé cette première journée s’adresse essentiellement à ceux qui n’ont jamais touché magento et si vous avez de bonnes bases en Php et que vous avez déjà installé magento, vous devriez pouvoir commencer votre semaine le mardi. Ceci étant dit, quelques astuces très pratiques sont tout de même délivrées dans le courant de la journée permettant par exemple de bien réaliser un import/export complet.

Astuces import / export magento :

  • cocher la non-vérification des contraintes d’intégrité lors du dump de la base (phpmyadmin)
  • la table core_config_data est à mettre à jour après l’import car elle contient les urls d’accès (web/unsecure/base_url et web/secure/base_url)
  • le fichier app/etc/local.xml contient les accès DB et autres éléments de configuration à changer lors du changement d’environnement
  • le fichier dowloader/pear.ini est à regénérer en cas de changement d’environnement, mais ceci ne peut pas être fait à la main. Pour cela, il faut l’effacer et resauvegarder la config dans magento connect.

Jour 2 : le templating

Ce deuxième jour est plus instructif. Nous abordons ce matin les concepts liés au templating. Comme beaucoup de choses dans magento, celui ci, pas toujours évident à bien comprendre, est très explosé. Du coup la présentation des différentes interactions entre les interfaces, les thèmes et les skins et surtout la configuration de ces interactions est essentielle pour appréhender toute intégration graphique. De l’association des interfaces ou thèmes différents à un shop dans l’administration magento (assez évident) à la mise en place de quelques retouches graphiques via des modifications du code (pas toujours intuitif dans un premier temps), de nombreux aspects sont abordés.

Le sujet, plustôt vaste, nous occupe toute la journée, mais c’est sans aucun doute les travaux pratiques qui m’instruisent le plus. La mise en place du fichier de configuration (xml) qui décrit les interactions entre les vues (fichiers .phtml) et les templates laisse entrevoir une puissance qui donne envie d’aller plus loin. Les possibilités de redéfinir le contenu d’un layout au fur et à mesure que l’on se ballade dans les fichiers de configuration sont plus qu’intéressantes. Si vous n’avez jamais approché magento, ceci n’est pas forcément très parlant, mais la curiosité du développeur en vous doit être titillée.

Bref, un deuxième jour très intéressant.

Au moment de rendre une page, magento parse absolument tous les fichiers de config (pour autant que le module ou le thème soit inclu) afin de déduire la configuration souhaitée. Ceci permet de redéfinir des bouts de configuration dans son code, ce qui peut être très pratique. Évidemment, ce mécanisme est mis en cache (si celui ci est activé).

 

Jour 3 : Les modules

Pour commencer ce troisième jour, nous poursuivons les explications liés aux templates. Mais l’essentiel de la matinée est consacrée à l’analyse d’un module. Quelle arborescence constitue un module? Où se trouvent les fichiers ? Comment les lier entre eux ? On replonge du coup dans le fonctionnement des fichiers de configs XML qui décrivent tant de choses dans magento. Nous apprenons par exemple comment surcharger uniquement un produit ou une catégorie.

L’après-midi, le sujet principal est le modèle de données de magento et surtout le concept sur lequel il repose : EAV. S’il est vrai que cette approche ne rend pas la modélisation plus simple, il la rend par contre beaucoup plus flexible, un atout indispensable qui explique aussi la modularité de magento.

Si la première journée m’a un peu inquiétée parce que pas très instructive, les deux jours suivants, avec leur lots d’astuces, de « how-to’s » et de « best practices » m’ont largement rassurés. Pourvu que ça dure !

Dans la config, si vous n’avez pas de type particulier à attribuer à un Block, donnez lui le type par défaut – core/template :

<block type= »core/template » name= »monblock » as= »monblock » >

Jour 4 : Création d’un module

Aujourd’hui nous créons notre premier module. On commence par déclarer le module. Au début, il ne fait qu’afficher le fameux « Hello World ! ». Puis, plus le cours avance, plus il se construit.

Tout y passe… scripts et configuration de l’installation, gestion des versions, création de blocks, de controllers, ajout d’un model, communication avec la base de données grâce aux « Resource Models », surcharge du core.

Nous modifions les données sans faire une requête sql grâce aux « Varien_Object ». Ce concept, très inspiré du Zend Framework, permet d’avoir du code très lisible et facile à maintenir. Les listes sont affichées grâce à la classe « Varien_Data_Collection » qui facilite entre autres le filtrage des résultats ou encore la pagination.

Ce module interagis exclusivement avec le frontend magento, alors l’après-midi nous analysons un module existant (le module news créer par l’extension Module Creator) qui interagis également avec le backend. Nous voyons ainsi comment afficher très facilement une liste d’éléments dans l’admin, en sélectionner un pour le modifier, ajouter des fonctionnalités d’exports Excel ou XML et de « Mass Action ».

Que du bonheur !

La liste des modules installés sur votre instance de magento se trouve dans la table « core_resources ». Vous y trouverez aussi la version actuelle du module. Ceci peut être très pratique en développement pour manipuler ses modules.

Jour 5 : Evènements et obervers

Dernier jour. Gabriel passe la journée à répondre aux nombreuses questions et nous proposent quelques concepts pas encore abordés.

On survole ainsi le fonctionnement des événements et des observers qui permettent d’éviter parfois de surcharger le core de magento et donc d’être moins sensible aux mises à jour du produit. On complète notre module créé la veille avec des fonctionnalités de traductions et nous testons rapidement un webservice. Enfin, nous observons le fonctionnement des imports / export automatiques depuis l’admin (pas mal, mais un peu limité).

Cette dernière journée permet surtout de répondre aux interrogations de tout le monde et de présenter ses problèmes concrets. On obtient rapidement une solution, une direction à suivre ou à ne pas suivre. Encore une fois beaucoup de temps gagner grâce à l’expertise des membres de l’académie.

Conclusion

Un détail, et pas des moindre, que je n’ai pas précisé est que le prix de la formation inclus le repas du midi qui est (à mon goût) très bon.

En résumé, je pense que cette formation me permettra de gagner énormément de temps sur mes futurs projets magento. Moins de temps sur Google, plus d’efficacité et une meilleure utilisation du framework magento (car c’est aussi un framework). Je dois dire donc, que cette semaine a été très positive et que j’encourage tout futur développeur magento à prendre ce temps pour parfaire ses compétences. Pour les articles techniques, ils arriveront au fur et à mesure que les projets avanceront.

Bonne journée 😉

Visited 6 times, 1 visit(s) today