Magento 2 : premier test

Installation, décryptage de l'architecture, des nouvelles possibilités de développement... Magento 2 est annoncé, au mieux, pour la fin de l’année 2012, c’est donc le moment de commencer à analyser ce qu'il propose sous le capot.

Magento 2 est annoncé (au mieux) pour la fin de l’année 2012, c’est donc le moment de commencer à en parler sérieusement. J’ai donc téléchargé cette nouvelle version actuellement en développement et je l’ai testée pour vous.
Depuis la sortie de la première version, de nombreux clients importants l’ont adoptée. Les versions ont évolué et au fur et à mesure Magento est devenue une plateforme très complète. A partir de l’expérience accumulée ces dernières années, Magento a appris de ses erreurs, et à décider de sortir une nouvelle version : Magento 2 !

1- L’installation
« Une installation facile et pratique tu garderas »



Pour mon test, j’ai installé Magento en local, j’ai donc créé un nouveau vhost vers mon dossier Magento 2, et ça a marché tout de suite. Pas de grande surprise pour l’instant : la procédure d’installation est presque identique, je remarque quand même un champs «backend» qui me permet de choisir le chemin d’accès à l’admin.




J’ai laissé ce champs à sa valeur par défaut, ce qui me permet de me connecter via cette adresse : http://magentodeux.local/index.php/backend/admin/




2- l’interface
« Perdu tu ne seras pas, car identique l’interface restera »

J’ai décidé de commencer par explorer le backoffice, un peu impatient à l’idée de découvrir de nouvelles choses. Et là... grosse surprise ! C’est toujours le même design que sur Magento, j’imagine qu’il sera peu être remanié par la suite et qu’on a repris le design de Magento le temps du développement de Magento 2... ou peut être que le design convient entièrement. Après tout, ça reste Magento, et son backoffice est quand même vachement pratique.



Au niveau des menus j’ai l’impression d’être sur la même version que d’habitude, pas de nouveautés à première vue... Rappelons que ce qu’on trouve sur le GIT de Magento 2 n’est encore qu’en phase de développement et de test, donc peut-être que cette partie évoluera par la suite.

Ensuite, je suis parti explorer le frontoffice. Bien sûr, cette fois pas de surprise. Vu le backend, je m’attendais bien à voir quelque chose que je connaissais déjà. Vous l’aurez compris, Magento 2 au niveau de l’interface est (au jour où j’écris cet article) identique à Magento 1. Ce qui a quand même un côté positif car ça permettra à tous les utilisateurs non geeks qui ont passé des heures à se former sur Magento à ne pas devoir se reformer totalement à la nouvelle version, et pouvoir travailler dessus sans souci (et pour les entreprises, ça permettra d’éviter de perdre de l’argent dans les formations d’équipe déjà formée sur la version 1).

3- Organisation des fichier
« Quelques trucs sympas, tu ajouteras mais dans l'ensemble ton organisation tu garderas. »

Alors là par contre il y a de la nouveauté ! On garde bien sur notre dossier app, contenant nos modules. Mais, on voit apparaître plusieurs dossiers intéressants, sans rentrer dans les details on évoquera :

/shell/tests qui va permettre de faire des tests, comme des tests unitaires avec PHPUNIT par exemple. Sur une technologie comme Symfony, les test unitaires étaient déjà standard depuis longtemps, on est bien content de les voir arriver sur Magento 2.

On devrait donc bientôt être capable de faire des tests d’intégration, de performance et des tests unitaires rapidement, et ça c’est vraiment un plus.

4- Nouvelle structure de module
« Quelques adaptations dans les modules tu feras, surtout les models tu modifieras »

Alors là par contre pour les développeurs c’est génial !
Vous vous souvenez quand vous développiez un module avec Magento que vous deviez mettre vos fichiers à deux endroits différents ? Notamment pour design et code. Voire à trois endroits avec les skins, et même quatre avec les locales... Maintenant avec Magento 2, tout est concentré dans le même dossier... ça va faire gagner du temps à tous les développeurs, et personnellement je trouve ça beaucoup plus logique de tout rassembler à un seul endroit.

Sinon, la structure est a peu près la même : on retrouve notre fichier config.xml, l’activation du module et les dépendances se font directement dedans cette fois-ci. C’est une petite évolution de la version Magento 2. On va donc retrouver nos balises « codePool », « depends », et « active », dans notre déclaration de module à côté de la balise actuelle « version ».




















On remarquera aussi l’apparition d’un dossier view qui contient deux dossiers « email » et « frontend » :
- « frontend » contiendra les vues phtml et et le layout
- « email » contiendra les templates des emails.

En ce qui concerne les factory (ce qui permet d’instancier nos models), on doit maintenant écrire le nom complet des classes. Les alias, c’est fini !

ex : $model = Mage::getModel('Pfay_Mymodule_Model_Mymodel');
ce qui permet de ne plus devoir déclarer les chemins pour les helpers, models (etc.) et de faciliter la façon de déclarer un rewrite. On a donc bien allégé notre fichier de configuration.

Pour les layouts du coup comme on a plus d’alias pour la déclaration des classes, on doit écrire le nom de la classe au complet dans l’attribut « type » d’un block.

Et petite nouveauté de la version 2, on doit préciser dans quel module les fichiers css, js (etc.) vont se trouver.

A par ça, pas de grandes nouveautés dans l’ensemble. Développer un module devient plus pratique et plus rapide, mais pas plus compliqué.

5- La documentation
« La documentation cette fois tu créeras, car utilisée fortement elle sera. »

Pour une fois, il va y avoir de la documentation. Une des principales difficultés sur Magento jusqu’à     maintenant c’était de trouver de la documentation de qualité et savoir différencier le bon du mauvais dans les solutions qu’on pouvait trouver sur le web (quand on trouvait une solution sur le web... ce qui n’était pas toujours le cas, disons le clairement on était souvent tout seul ! Même si avec le temps c’est de moins en moins vrai). Magento a commencer à mettre de la documentation que vous trouverez sur : https://wiki.magento.com/display/MAGE2DOC/ .

6- Correction de beaucoup de défauts et évolutions intéressantes
« Appris de tes erreurs tu sauras, et beaucoup de problèmes tu régleras »


Disons le clairement, Magento n’était pas parfait et beaucoup de développeurs (moi inclus) ont déjà passé des heures à rager autour de ses défauts.

Avec la version 2, ce qu'on attend :
- Jquery devrait être la librairie JavaScript utilisée par défaut,
- Gestion de plusieurs SGBD (Oracle, MySQL, MS SQL),
- Plus de code inutile commenté dans le core,
- Traductions mieux gérées et bien d’autres détails.

Par contre attention : pas de compatibilité entre les version 1.X et les version 2.X de Magento... Pour nos clients utilisant actuellement un site sous Magento, et souhaitant passer sur Magento 2, il va faloir redévelopper le site. Si vous êtes parti d’une version Magento 1.3 ou que vous avez souvent changé de prestataire, la plupart du temps ça ne sera pas du luxe de repartir sur une version « propre ».

Bien sûr vous ne serez pas abandonné totalement, des scripts vous permettrons de récupérer la plupart de vos informations, mais vos modules personnels seront à réadapter.

Voilà on arrive à la fin de mon test de Magento 2, j’attends avec impatience sa sortie et la réalisation d’un projet complet avec les tests unitaires, fonctionnels (etc.) sous cette nouvelle version. Je pense qu’elle répondra a beaucoup de besoins, et j’espère qu’au niveau des performances on gagnera en rapidité. Mais pour l’instant il faut laisser du temps aux développeurs de Magento 2, et on en reparlera début 2013 quand Magento2 sera sorti ! :)