J'ai une classe qui étend PDO pour lui donner la possibilité de tirer la configuration d'un fichier xml. Malheureusement, notre fournisseur d'hébergement a désactivé SimpleXML, j'ai donc besoin de refactoriser mon code pour utiliser Dom, qui est disponible.Portage code qui a utilisé SimpleXML à Dom en PHP
J'utilise le code suivant:
class xmlPDO extends PDO
{
public function __construct($xml_uri){
$xml = simplexml_load_file($xml_uri);
$dsn_template = "%s:host=%s; dbname=%s";
$dsn = sprintf($dsn_template, $xml->dsn->driver, $xml->dsn->host, $xml->dsn->dbname);
parent::__construct($dsn, $xml->username, $xml->password);
}
}
Pour lire le code XML suivant:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE database [
<!ELEMENT database (name, description, dsn, username, password)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT dsn (driver, dbname, host)>
<!ELEMENT driver (#PCDATA)>
<!ELEMENT dbname (#PCDATA)>
<!ELEMENT host (#PCDATA)>
<!ELEMENT username (#PCDATA)>
<!ELEMENT password (#PCDATA)>
]>
<database>
<name>Test Database</name>
<description>Localhost test database, use only for testing</description>
<dsn>
<driver>mysql</driver>
<dbname>test</dbname>
<host>localhost</host>
</dsn>
<username>user</username>
<password>test</password>
</database>
Je cherche la documentation de php.net et ai vraiment du mal à essayer de comprendre comment je suis censé faire cela. Je ne peux pas donner l'exemple d'un code clair pour extraire des données comme celle-ci.
essayez-vous toujours de le porter? avez-vous essayé l'une des réponses? –