2011-04-06 92 views
3

在教程中,例如http://akrabat.com/zend-framework-tutorial/,應用程序的數據庫參數存儲在application.ini配置文件中。通過閱讀zend_db和其他數據庫交互教程的文檔,它建議數據庫對象是通過硬編碼到php代碼中的參數創建的。令人困惑的是,在上面的教程中似乎沒有對數據庫對象進行任何明確的初始化。所以我的自然結論是,數據庫對象是由application.ini配置文件中提供的參數自動生成的?Zend Framework數據庫初始化

回答

8

所以,我的結論自然這是 數據庫對象 自動從 的application.ini配置文件中提供的 參數產生的?

實際上,在數據庫初始化之前還有幾步。

  1. 您的應用程序bootstraped
  2. 它讀取配置文件
  3. 當資源*發現,檢查是否按照資源類存在
  4. 的資源類初始化對象與給定參數
    1. Zend_Db_Table有一個靜態方法setDefaultAdapter($ db),它接受新創建的Zend_Db對象,現在每個Zend_Db_table對象都可以使用您在配置中設置的Db對象。
  5. 返回新創建的對象
  6. 回去3.
  7. 路由器,控制器,佈局,景觀等

這種 「行爲」 是最近的,這就是爲什麼你可以找到一些老教程向你展示瞭如何手動引導你的Zend_Db對象,有時,它只是向你展示Zend_Db是如何工作的。

+0

啊正確,所以即時假設'resource.db'下的任何東西,涉及'zend_db'類的一個實例? – richzilla 2011-04-06 22:45:22

+1

yup !!如果您檢入Zend/Application/Resource文件夾,您將看到Zend附帶的所有資源類。當你看到資源時*它會進入這個文件夾並查找相應的資源類並將它從.ini文件獲得的參數提供給它。 該類使用這些來創建稍後使用的實際對象。 – 2011-04-07 07:09:36