Outils pour utilisateurs

Outils du site


Panneau latéral

ref:xml_import

Importation XML

Généralités

RBS Change permet l'importation de documents à partir de fichiers XML d'un certain format. Dans la suite on désignera script XML un fichier de ce format.

Cette importation est géré par des classes PHP, étendant import_ScriptDocumentElement, en général stockées dans persistentdocument/import/ et étant associées à des éléments par une section “binding” du fichier XML.

Cas d'utilisation :

  • imports initiaux des modules définis dans ce format.
  • les modules proposent génériques souvent un fichier sample.xml (dans monModule/setup) permettant d'initialiser des données d'exemple.
  • initialisation d'une partie de l'arborescence d'un site avant intégration du contenu (gain de temps, reproductible).
  • import de données lors de l'exécution de patch

Exécution d'un import

Les fichiers XML sont placés dans dossier setup/ du module.

Depuis la ligne de commande, la commande change.php import-data permet l'importation d'un fichier XML :

Exemple : importation du fichier setup/sample.xml du module website :

change.php import-data website sample.xml

Depuis PHP, utilisez la méthode executeModuleScript() de import_ScriptDocumentElement :

import_ScriptDocumentElement::getInstance()->executeModuleScript('website', 'sample.xml');

Dans le contexte d'un script d'initialisation de module, vous pouvez utiliser le raccourci executeModuleScript($scriptName, $module = null) qui par défaut cherche le fichier dans le module courant (ici mymodule) :

class mymodule_Setup extends object_InitDataSetup
{
    public function install()
    {
        $this->executeModuleScript('init.xml');
    }
}

Dans le contexte d'un patch, vous pouvez utiliser les raccourcis executeLocalXmlScript($scriptName) et/ou executeModuleScript($scriptName, $module) :

class myPatch extends patch_BasePatch
{
    public function execute()
    {
        // Recherche dans le dossier du patch en cours
        $this->executeLocalXmlScript('myLocalScript.xml');
        // Recherche dans le dossier setup du module spécifié
        $this->executeModuleScript('myModuleScript.xml', 'myModule');
    }
}

ref/xml_import.txt · Dernière modification: 2017/01/19 14:54 (modification externe)