2011-09-28 29 views
0

我想學習zend框架,並設法通過他們有的整個快速入門教程。然而,有一些我根本無法理解,並希望有人能幫助我。Zend快速入門教程概念問題

在本教程中,您將創建一個db-table類,一個映射器和一個模型。我閱讀文檔,並理解db-table類的用途(定義表,關係,創建/獲取行)。當你查詢db-table類時,你會得到一個類db-table-row的對象,你可以使用它來操作db中的特定記錄。

但是,我不明白爲什麼教程會讓我創建一個映射器和一個模型,也沒有在模型中定義getter/setter方法的原因(不應該由db-table-row提供嗎?)

即使在控制器中,他們從模型類和映射器類創建了一個對象,然後他們完全忽略了模型對象,並使用了映射器對象。

有沒有什麼需要那些3班?各自履行什麼不同的目的?據我所知,我需要的只是db-table類,對嗎?

回答

3

當你查詢數據庫,表類,你會得到一流的 DB-錶行

的對象沒有你DB-錶行集,而不是這行的集合。 其次

你甚至不需要DB-表類

$dbTable = new Zend_Db_Table('tableName'); 

但由於DB-表類允許你定義裏面(業務邏輯)其他表之間的關係因此變得非常重要。

當實體對例如用戶表很重要時,db-table-row變得很重要。在用戶的自定義db-table-row中,您可以添加方法getTopics();,該方法返回由用戶創建的所有主題的行集,從而更加有助於業務邏輯。

+0

非常好,但是他們在快速入門教程中使用的mapper和簡單模型呢?他們需要嗎?他們有用嗎? – Faisal

+0

如果數據庫表是數據源,則使用映射器(DbTable)。如果數據來自任何其他來源,例如websrervice(閱讀Twitter時間線),則使用普通模型。如果db表族定義了你的實體,那麼將該實體定義爲普通模型,它通過合成使用這些數據庫表。 –