Script d’installation version 1.6

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

<?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

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

<?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

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