Nous contacter

Script d'installation version 1.6

PARLER DE MON PROJET

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 suppression des infos de connexion, des core write read, et l'apparition d'un deprecated node. voir ci dessous le code se trouvant bien sur dans <global></global>

<models>
<gestion>
<class>Valibus_Gestion_Model</class>
<resourceModel>gestion_resource</resourceModel>
</gestion>
<gestion_resource>
<class>Valibus_Gestion_Model_Resource</class>
<deprecatedNode>gestion_mysql4</deprecatedNode>
<entities>
<gestion>
<table>gestion</table>
</gestion>
</entities>
</gestion_resource>
</models>
<resources>
<gestion_setup>
<setup>
<module>Valibus_Gestion</module>
</setup>
</gestion_setup>
</resources>

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

Valibus/Gestion/Model/Resource/Gestion.php
<?php
class Valibus_Gestion_Model_Resource_Gestion extends Mage_Core_Model_Resource_Db_Abstract {
protected function _construct()
{
$this->_init('gestion/gestion', 'gestion_id');
}
}

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

Valibus/Gestion/Model/Resource/Gestion/Collection.php
<?php
class Valibus_Gestion_Model_Resource_Gestion_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
{
protected function _construct()
{
$this->_init('gestion/gestion');
}
}

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.

Le fichier Valibus/Gestion/Model/Mysql4/Gestion.php
<?php
class Valibus_Gestion_Model_Mysql4_Gestion extends Mage_Core_Model_Mysql4_Abstract {
}

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

Valibus/Gestion/sql/gestion_setup/install-0.1.0.php
<?php
$installer = $this;
$installer->startSetup();
$table = $installer->getConnection()
->newTable($installer->getTable('gestion/gestion'))
->addColumn('gestion_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
'identity' => true,
'unsigned' => true,
'nullable' => false,
'primary' => true,
), 'Gestion Id')
->addColumn('skuproduit', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
), 'SKU produit')
->addColumn('creation_time', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(
), 'Page Creation Time')
->addColumn('update_time', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(
), 'Page Modification Time')
->setComment('Gestion');
$installer->getConnection()->createTable($table);
$installer->endSetup();

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

<deprecatedNode>gestion_mysql4</deprecatedNode>

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.)

Livre

Découvrez les best practices en SEO

Téléchargez notre livre blanc SEO !