搜尋
首頁php教程PHP开发Zend Framework教程之Zend_Config_Xml用法分析

本文實例講述了Zend Framework中Zend_Config_Xml用法。分享給大家供大家參考,具體如下:

Zend_Config_Xml 讓開發者能夠儲存設定資料到一個簡單XML格式並透過嵌入物件屬性語法來讀取。

XML檔案的根元素(root element)不相關並可以任意命名。頂級的XML元素和配置資料的節相對應。

XML格式透過嵌入XML元素到節一級元素(section-level elements)的下面來支援等級結構組織。

葉一級(leaf-level)的XML元素和配置資料的值相對應。節繼承透過一個特殊的XML屬性名為extends來支持,與之相對應的這個屬性的值透過擴展節(extending section)來繼承.

返回類型

讀入Zend_Config_Xml中的配置資料總是返回字串。資料從字串到其它類型的轉換留給開發者來適應他們特定的需求。

例: 使用Zend_Config_Xml

這個範例範例了從INI檔案載入設定資料的Zend_Config_Xml的基本用法。在這個範例中有生產系統(production system)和開發系統(staging system)的設定資料。因為開發系統配置資料和生產系統的配置資料類似,所以開發系統的節從生產系統的節繼承。在這個案例中,結果(decision)是任意的並且它可以反過來做,即生產系統節從開發系統節繼承,儘管這不可能用於更複雜的情況。接著,假設下面的設定資料包含在/path/to/config.xml中:

<?xml version="1.0"?>
<configdata>
  <production>
    <webhost>www.example.com</webhost>
    <database>
      <adapter>pdo_mysql</adapter>
      <params>
        <host>db.example.com</host>
        <username>dbuser</username>
        <password>secret</password>
        <dbname>dbname</dbname>
      </params>
    </database>
  </production>
  <staging extends="production">
    <database>
      <params>
        <host>dev.example.com</host>
        <username>devuser</username>
        <password>devsecret</password>
      </params>
    </database>
  </staging>
</configdata>

   

接著,假定開發者需要從XML檔案中擷取開發設定資料。這非常簡單,只要指定XML檔案和開發系統節就可以載入這些資料了:

$config = new Zend_Config_Xml(&#39;/path/to/config.xml&#39;, &#39;staging&#39;);
echo $config->database->params->host;  // 输出 "dev.example.com"
echo $config->database->params->dbname; // 输出 "dbname"

   

例:在Zend_Config_Xml 使用標籤(tag)屬性

Zend_Config_Xml 使用標籤(tag)屬性節點。它們都利用屬性。 因為 extends 和 value 屬性是保留關鍵字(後者是第二種使用屬性的方法),它們可能不會被使用。 第一種方法使用屬性是把屬性加到父節點,它本身就變成了子節點:

<?xml version="1.0"?>
<configdata>
  <production webhost="www.example.com">
    <database adapter="pdo_mysql">
      <params host="db.example.com" username="dbuser" password="secret" dbname="dbname"/>
    </database>
  </production>
  <staging extends="production">
    <database>
      <params host="dev.example.com" username="devuser" password="devsecret"/>
    </database>
  </staging>
</configdata>

   

另一種方法也不會使配置變小,但使維護變得容易,是因為你需要要寫標籤名兩次。你可以建立一個空標籤,它在 value 屬性裡包含它的值:

<?xml version="1.0"?>
<configdata>
  <production>
    <webhost>www.example.com</webhost>
    <database>
      <adapter value="pdo_mysql"/>
      <params>
        <host value="db.example.com"/>
        <username value="dbuser"/>
        <password value="secret"/>
        <dbname value="dbname"/>
      </params>
    </database>
  </production>
  <staging extends="production">
    <database>
      <params>
        <host value="dev.example.com"/>
        <username value="devuser"/>
        <password value="devsecret"/>
      </params>
    </database>
  </staging>
</configdata>

   

希望本文所述對大家基於Zend Framework框架的PHP程式設計有所幫助。

更多Zend Framework教程之Zend_Config_Xml用法分析相關文章請關注PHP中文網!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)