我的公司將數據庫管理和開發保留在單獨的部門中,對於我的Symfony2應用程序,我只允許通過服務API與數據庫進行交互。這意味着我不能使用Doctrine ORM甚至是php pdo。我基本上將不得不建立我自己的抽象層。我一直在搜索互聯網,並沒有看到有關爲Symfony2創建自己的基本實體抽象層的最佳實踐。我什至不能找到有關使用除了教義之外的任何信息。在沒有Doctrine的情況下在Symfony2中創建實體
有沒有人有任何建議或瞭解任何資源的最佳做法,這樣做symfony2?
我的公司將數據庫管理和開發保留在單獨的部門中,對於我的Symfony2應用程序,我只允許通過服務API與數據庫進行交互。這意味着我不能使用Doctrine ORM甚至是php pdo。我基本上將不得不建立我自己的抽象層。我一直在搜索互聯網,並沒有看到有關爲Symfony2創建自己的基本實體抽象層的最佳實踐。我什至不能找到有關使用除了教義之外的任何信息。在沒有Doctrine的情況下在Symfony2中創建實體
有沒有人有任何建議或瞭解任何資源的最佳做法,這樣做symfony2?
Symfony是模型獨立的(MVC中沒有'M')。請注意,Doctrine或Propel是與Symfony集成的獨立項目。他們不是框架的一部分。
我認爲你應該只爲你的API實現客戶端庫,它將與框架分離(你甚至可以在純php腳本或其他框架中使用它)。
第2步將集成您的庫與Symfony。它可能包括創建一個捆綁和適當的服務定義。看着DoctrineBundle可能會給你一些想法。
我做到了以下方法:
首先我定義實體,但沒有ORM的東西在裏面。
然後我創建了從API檢索數據的Service Container類。 http://symfony.com/doc/current/book/service_container.html
第三我已經使用類似數據變換器的東西來將從API中獲取的數據轉換爲我的Symfony實體。 http://symfony.com/doc/current/cookbook/form/data_transformers.html
請隨時與我聯繫瞭解更多詳情。
在我看來,API可能被視爲另一個數據庫驅動程序。我想這個教義可以擴展到接受自定義數據庫驅動程序,但我不知道它需要多少努力,以及您的API是否提供了所有必要的功能。這種方法的明顯優點是,如果您擁有PDO訪問權限,您將能夠使用相同的原則功能。
感謝您的提示。這非常有幫助。 – Clint