Ben ona bir xml dosyasından yapılandırmayı çekme olanağı vermek için PDO genişleten bir sınıf var. Ne yazık ki bizim hosting sağlayıcısı yüzden mevcut Dom, kullanmak için kodumu refactor gerekir SimpleXML devre dışı bıraktı.
Ben aşağıdaki kodu kullanıyorum:
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);
}
}
Aşağıdaki XML okumak için:
<?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>
Ben php.net belgelerine bakıyorum ve ben bu yapıyor olması gerekiyordu yaşıyorum nasıl anlamaya çalışıyorum gerçekten zor bir zaman yaşıyorum. Ben bu gibi veri çekerek herhangi bir açık kod örnekleri gibi görünüyor olamaz.