Yani ben bütün sabitleri tanımlamak için kullanabilirsiniz ama şimdi yerine bir XML kullanmanın esneklik isteyen bir PHP dosyası var.
Örnek PHP Yapılandırma dosyası
define("LOGIN_URL", "secure_login.php");
define("REDIRECT", "redirect.php");
define("MAPPED_VALUE_GREEN", "object_green");
define("MAPPED_VALUE_KEY", "object_key_12345");
Ne yapacağım olduğunu:
<scriptNameConfig>
<urls>
<url alias="LOGIN_URL" scriptname="secure_login.php" location="optional/path/to/file"/>
<url alias="REDIRECTL" scriptname="redirect.php" location="optional/path/to/file"/>
</urls>
<mapping>
<mapped name="MAPPED_VALUE_GREEN" data="object_green"/>
<mapped name="MAPPED_VALUE_KEY" data="object_key_12345"/>
</mapping>
</scriptNameConfig>
Şimdi bu iyidir ama config dosyası bu tür değerleri ayıklamak için ama yeterince dinamik olmak istiyorum XPath kullanmak istiyorum bu yüzden sabit kod gerekmez fonksiyonları
Bu benim temel sınıftır
class ParseXMLConfig {
protected $xml;
public function __construct($xml) {
if(is_file($xml)) {
$this->xml = simplexml_load_file($xml);
} else {
$this->xml = simplexml_load_string($xml);
}
}
}
Ve ben bu gibi uzatmak
class ParseURLS extends ParseXMLConfig {
public function getUrlArr($url_alias) {
$attr = false;
$el = $this->xml->xpath("//url[@alias='$url_alias']");
if($el && count($el) === 1) {
$attr = (array) $el[0]->attributes();
$attr = $attr['@attributes'];
}
return $attr; // this will return the element array with all attributes
}
}
Ben bunu ayrıştırmak için XPATH için fonksiyonun çeşit eklemek zorunda confie dosyasında yeni bir değer tanıtmak istedim ama sorundur. Herkes bu yüzden / ekleme, değiştirme veya kaldırma öğeleri / daha kolay ve daha az kodlama zor olurdu XML yapılandırma dosyasında dinamik / jenerik nitelikler yapıyor hakkında gitmek nasıl bir fikir olup olmadığını bilmek istiyordu.
Thanks for any tips/examples/code/ideas, -Phill