2012-11-02 29 views
0

可能重複:
How should a model be structured in MVC?不使用ORM來組織MVC模型的最佳方法?

我玩弄自己的小MVC框架。到目前爲止,我使用Doctrine進行對象關係映射,這很好。起初它看起來是設置您的MVC的最佳方式。我使用它的方式是這樣的,我有文件夾應用程序/模型,這是我會把所有的模型文件,如教義實體,服務,將執行一些全球任務,驗證等...所以模型是一個所有MVC應用程序的肉都會去的文件夾。然後,我會註冊模型文件夾與SPL類加載庫,我能夠得到這樣的實體:

$users = new \Application\Model\Entity\User(); 

現在我決定,因爲我真的不喜歡它,不使用ORM了,我不會談論爲什麼但讓我們只說我想使用原始的SQL而不是ORM。現在的問題是如何組織我的文件夾結構來實現這個目標?

我正在考慮在模型文件夾中創建新文件夾表,所以我可以有這樣的:Application \ Model \ Tables \ User.php,並從該PHP文件我可以訪問用戶表上的所有操作,如更新,獲取,插入等...

現在的問題是我將如何組織我的模型文件夾使用RDMS,但不使用ORM? 由於模型是一個圖層,模型應該具有域對象和數據映射器。域對象是表示當前應用程序域對象的對象,映射器將持久保留這些域對象。我怎麼能組織這個使用原始SQL,但沒有ORM,並且沒有構建我自己的ORM?

是否有任何好的框架劑量使用ORM或活動記錄pettern所以我可以探索他的代碼,看看他們是如何做到這一點?

+1

問題在哪裏?只需編寫你自己的映射器。您不需要ORM在代碼中使用[數據映射器](http://martinfowler.com/eaaCatalog/dataMapper.html)模式。 –

回答

0

如果您不喜歡使用DoctrineActiveRecord,您可以查看我用於Zend框架的DB Model代碼生成器,如this

他們中的大多數都比直接的數據庫調用要慢,但會提高開發中的性能。在製作過程中,您可以分析您的應用程序,並用直接MySQL調用瓶頸來替換ORM調用。我最喜歡ActiveRecord,但沒有一個是完美的...

相關問題