Scripts d'installation
Déclarer notre script d'installation
<global>
<resources>
<formation_test_setup> <!-- Détermine le nom du dossier dans sql -->
<setup>
<module>Formation_Test</module>
<class>Formation_Test_Model_Resource_Setup</class>
</setup>
</formation_test_setup>
</resources>
</global>
Pour que notre classe Formation_Test_Model_Resource_Setup fonctionne, nous devons au préalable déclarer les models et les resources dans le noeud global de notre config.xml :
<models>
<formation_test>
<class>Formation_Test_Model</class>
<resourceModel>formation_test_resource</resourceModel>
</formation_test>
<formation_test_resource>
<class>Formation_Test_Model_Resource</class>
<entities> <!-- Déclaration des tables, accessible en indiquant formation_test/quoterequest -->
<quoterequest>
<table>formation_test_quote_request</table>
</quoterequest>
</entities>
</formation_test_resource>
</models>
Le contenu de la classe est très simple :
<?php class Formation_Test_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup {}
Nos scripts d'installation seront situés dans le dossier sql/formation_test_setup et seront appelés install-1.0.0.php pour une première installation puis upgrade-<ancienne_version>-<nouvelle_version>.php, par exemple upgrade-1.0.0-1.0.1.php.
Lorsque Magento charge une page, il va vérifier la version de l'ensemble des modules dans les fichiers config.xml et va les comparer avec ce qu'il a dans la table core_resource. S'il voit une montée de version, il va appliquer l'ensemble des scripts jusqu'à arriver à la dernière version.
TP - Création de la table formation_test_quote_request
- Déclarer notre script d'installation
- Créer le fichier
install-1.0.0.phpet faire en sorte qu'il crée la tableformation_test_quote_request. Pour cela, voir comment Magento fait dans le fichier d'installation du moduleCatalog. La table doit contenir les champs id (int, auto-increment), name, email et message - Rafraichir une page de Magento, et vérifier que la table est bien créée
Si l'installation d'un script ne fonctionne pas, vous devez supprimer la ligne de votre module dans la table
core_resourcepour relancer l'installation, ou redescendre la version dans le cas d'une mise à jour.
TP - Ajout de la colonne telephone
- Créer un script de mise à jour
upgrade-1.0.0-1.0.1.phpet modifier la version du module dans leconfig.xmlen 1.0.1 - Faire en sorte qu'il ajoute la colonne telephone dans la table
formation_test_quote_request. Pour cela, vous pouvez vous inspirer de ce que fait Magento dans le scriptupgrade-1.6.0.0.6-1.6.0.0.7.phpdu moduleCatalog.
Il est aussi possible de mettre à jour une valeur en configuration, de créer des attributs etc. Aucune action ne devrait être faite dans le back-office pendant le développement. En effet, si vous créez un attribut produit depuis le back-office par exemple, il n'existera pas lorque vous déploirez en préproduction, en production, ou lorsqu'un autre développeur travaillant sur le projet récupèrera votre code. Il faut donc à chaque fois utiliser un setup
Formation Magento Developpeur
Magento 1.X