410 GONE

Besoin d'un conseil e-Commerce / Magento? SEO ? les deux? Contactez-moi!

Script d'installation version 1.6

Article publié par : (Google+ Profile) Mis à jour le 20 Dec 2017 (publié depuis le )

Que pensez-vous de cet article ?

OR

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>

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

Que pensez-vous de cet article ?

Aucun avis pour le moment, soyez le premier à laisser le votre !