Les scripts d’installations peuvent être gérés en mode objet depuis la version 1.6, nous allons détailler comment dans cet article de notre série de tutoriels magento.

Cette évolution se voit notamment quand on regarde le script d’installation d’un module natif de magento dans le core. (qui je le rappel, ne doit jamais être modifié)

Nouveaux noms de fichiers et arborescence

Un fichier d’installation précédemment nommé: mysql4-install-0.1.0.php, pourra désormais s’appeler: install-0.1.0.php. Sans doute en vue d’une prise en compte d’autre moteurs que mysql4.
Il faudra également rajouter l’arborescence suivante: (en prenant l’exemple du tutoriel de création de module)
Valibus/Gestion/Model/Resource/Gestion.php
Valibus/Gestion/Model/Resource/Gestion/Collection.php

Modifications dans le code

Le code est notamment modifié au niveau du config xml, avec la suppresion des infos de connection, des core write read, et l’apparition d’un deprecated node. voir ci dessous le code se trouvant bien sur dans <global></global>

Au niveau du fichier gestion Resource, Valibus/Gestion/Model/Resource/Gestion.php

Au niveau du fichier gestion Resource collection, Valibus/Gestion/Model/Resource/Gestion/Collection.php

Le fichier Valibus/Gestion/Model/Mysql4/Gestion.php peut être vidé, hormis la déclaration de class puisque l’init est désormais réalisé au niveau Resource.

Il ne nous reste plus qu’à modifier notre script d’installation pour l’adapter à la nouvelle norme. Celui ci se trouve dans : Valibus/Gestion/sql/gestion_setup/install-0.1.0.php

Full Update?

Pour l’instant je vous ai expliqué comment faire un module rétro compatible. Si vous souhaitez que votre module soit complètement 1.6, c’est assez simple. il suffit de supprimer le dossier mysql4, et la ligne

Ensuite une purge des caches, et on relance l’installation. (après bien entendu avoir supprimé la table gestion et la ligne du module dans core_ressource.)