2011-07-04 71 views
2

最近我一直在一個基於MVC框架,該框架目前一半,其中I'me尋找到我應該使用什麼數據庫抽象層的階段結束,現在I'me。選擇合適的數據庫系統爲我的框架

在我的大部分項目,我通常只使用PDO作爲父類,並具有一些集成輔助功能的自定義結構。

但是我必須和時並進,ORM應該在DBAL的這些日子裏很大,但我從來沒有用過它,我理解ORM的概念,我覺得它很漂亮,但我堅持什麼去做。

我Framework的源可以在這裏找到,所以你可以看到什麼類型的系統,它是,沒有DBAL什麼那麼此刻只是型號裝載機等

我是否應該堅持我所知道的,並且使用PDO和一些額外的功能來提高性能。

或者我應該走出去到未知和使用ORM基於DBAL,如果你認爲我應該走出去我的問候幾個問題來使用它。

首先,我知道有很多的StackOverflow上的問題和答案的問候「最好的ORM」但是記住以下,你會建議?

  • 重量輕,很好的測試
  • 能夠與模型集成
  • 擁有的廣泛的選擇駕駛
  • 有它自己的範圍,或者至少前綴與它的供應商名稱

我有看着RedBeans,我喜歡那裏的概念,但是有很多功能在模型之外是無法實現的。

您的建議是什麼?

回答

0

一個ORM層允許你抽象的數據庫層,多爲關係數據庫。

一個好的允許您擴展它的類,以便您可以更流利地使用ORM滿足您自己的需求。不知怎的,就像你在PDO上做的那樣,但在ORM層面上。

我建議你看一看Doctrine它容易與其他Symfony的組件或自己的​​類集成。 This plog post shows how it works。 Doctrine可能是您可以在PHP世界中找到的最先進的ORM和DBAL。

+1

我有一個原則的問題是它使用的命名空間的,雖然命名空間的是大量的語言很重要,我個人認爲PHP的事實是沒有在附近爲他們準備好,而且還有一點就是我的框架沒有與命名空間的構建 – RobertPitt

+0

@RoberPitt:任何PHP都使用命名空間,如果你沒有指定,那就是全局命名空間。因此,只要您不需要爲遺留原因而支持過時的PHP版本,就不會妨礙您使用明確指定名稱空間的PHP代碼。否則,Doctrine Version 1.2適用於全局命名空間中的PHP 5.2.3+。 – hakre

相關問題