Forum und email

DOMDocument->registerNodeClass()

(PHP 5 >= 5.2.0)

DOMDocument->registerNodeClass() — Enregistre la classe étendue utilisée pour créer un type de base de noeud

Description

DOMDocument
bool registerNodeClass ( string $baseclass , string $extendedclass )

Cette méthode vous permet d'enregistrer votre propre classe étendue DOM à utiliser ensuite dans l'extension DOM de PHP.

Cette méthode ne fait pas partie du standard DOM.

Liste de paramètres

baseclass

La classe DOM qui vous voulez étendre. Vous pouvez trouver une liste de ces classes dans l'introduction du chapitre.

Bien sûr, vous ne pouvez pas enregistrer une classe étendant DOMDocument mais vous pouvez toujours commencer votre document en instanciant votre propre classe étendue.

extendedclass

Le nom de votre classe étendue. Si la valeur NULL est fournie, toutes les classes enregistrées précédemment étendant baseclass seront supprimées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Historique

Version Description
PHP 5.2.2 Avant la version 5.2.2, une classe extendedclass précédemment enregistrée devait être dé-enregistrer avant de pouvoir en enregistrer une nouvelle étendant la même classe baseclass .

Exemples

Example#1 Ajout d'un nouvelle méthode à DOMElement

<?php

class myElement extends DOMElement {
   function 
appendElement($name) { 
      return 
$this->appendChild(new myElement($name));
   }
}

class 
myDocument extends DOMDocument {
   function 
setRoot($name) {
      return 
$this->appendChild(new myElement($name));
   }
}

$doc = new myDocument();
$doc->registerNodeClass('DOMElement''myElement');

// À partir d'ici, l'ajout d'un élément à un autre se fait en un seul appel !
$root $doc->setRoot('root');
$child $root->appendElement('child');
$child->setAttribute('foo''bar');

echo 
$doc->saveXML();

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<root><child foo="bar"/></root>