XMLDB

Depuis la création du projet Page d'accueil et sa particularité de no-MySQL, je me suis intéressé à la persistance via fichier et plus particulièrement au format que j'apprécie : le XML.

J'ai alors décidé de créer un simili-MySQL en XML.

Il a fallu tout d'abors determiné le format que celui allait prendre en essayant de prendre en compte d'éventuels ajouts de fonctionnalité. Je suis arrivé à cette étape après de nombreux essais.

Le format XML est :

<?xml version="1.0" encoding="utf-8"?>
<Config>
	<item id="clock">
		<visibility>false</visibility>
		<x>950</x>
		<y>42</y>
	</item>
	<item id="weather">
		<visibility>true</visibility>
		<city>Guérande</city>
		<x>1365</x>
		<y>89</y>
	</item>
	<item id="notes">
		<visibility>true</visibility>
	</item>
	<item id="search">
		<visibility>true</visibility>
	</item>
	<item id="links">
		<visibility>true</visibility>
	</item>
	<item id="blogs">
		<visibility>false</visibility>
		<x>559</x>
		<y>17</y>
	</item>
	<item id="todo">
		<visibility>true</visibility>
		<x>32</x>
		<y>-2</y>
	</item>
	<item id="clockAdvanced">
		<visibility>true</visibility>
		<x>80</x>
		<y>10</y>
		<fontFamily>Times New Roman, serif</fontFamily>
		<fontSize>20px</fontSize>
		<format>%A %d %B %Y - %H:%M</format>
		<color>#000</color>
	</item>
	<item id="rssblogs">
		<visibility>false</visibility>
		<x>478</x>
		<y>73</y>
	</item>
	<item id="news">
		<visibility>false</visibility>
	</item>
	<item id="ouifm">
		<visibility>false</visibility>
		<x>500</x>
		<y>10</y>
	</item>
	<item id="mappy">
		<visibility>false</visibility>
	</item>
	<item id="gmap">
		<visibility>true</visibility>
	</item>
</Config>

et l'équivalent PHP est :

    $node = array(

        array('name'=>'item'), 
        array('attribute'=>'id'), 
        array('childs'=>'xx')
    );

Pour télécharger la classe et voir la documentation, c'est sur le wiki de XMLDB