[PHP][POO] interfaces d'heritage

salut à tous,

désolé de vous déranger le jour de noel, mais je dois pas être le seul à être encore ici aujourd’hui B)

J’ai lu ce tuto et j’ai repris un de mes vieux poste

Bref je voudrais donc faire une classe genre display qui implémente la classe xml … donc d’apres le tuto, (meme si ça sert pas a grand chose, ça fait “joli”) facile.
sauf que j’ai relu quelques normes (meme si je fais du rdf plutot que du xml ça reste valable), et il s’avere qu’un certain nombres de balises sont à concerver.

exemple : en haut du xml il faut garder les et companie avant de mettre justement les pour ce qui est texte dynamique.

j’ai donc décidé de faire une classe dump like (comme dans le tuto).
seulement voilà, ça marche pas trop.

[code]// le fichier qui fait le xml xml.class.php donc

<?php interface XMLable { public abstract function toXML(); } ?>

// le fichier qui fait une classe de test : sample.class.php

<?php include('xml.class.php'); class Question implements XMLable { // skipping methods and properties public $prompt; public $response; public function __construct() { $this->prompt='bash'; $this->response='n00b'; } function toXML( ) { return <<<XMLFRAGMENT {$this->prompt} {$this->response} XMLFRAGMENT; } } ?>

// PS : désolé pour l’indentation de merde, c’est pas dans mes habitudes mais là jme suis concentré sur le CC et le fait que ça marche (pas)

// le fichier qui dump

<?php include('sample.class.php'); class ObjectDump { private $xmlStr; private $objects = array(); function addXMLable( XMLable $object ) { $this->objects[] = $object; } function output() { $xmlStr = "\n"; foreach($this->objects as $output) { $xmlStr .= $output->toXML(); } $xmlStr .= "\n"; return $xmlStr; } function __toString() { return $this->output(); } } ?>

// enfin, l’index

<?php include('dump.class.php'); $dumper = new ObjectDump(); $question = new Question(); $dumper->addXMLable($question); print $dumper; ?>[/code]

edit: manquait un public B)

Donc voilà, j’ai cherché … en vain donc je vous demande à vous.
help.

Bon j’avais essayé sans le “abstract”, fin du moins je croyais … puisque sans, ça marche.
résolvaide donc.