2016-02-26 34 views
1

客戶擁有一個現有的數據庫。模式經常在數據庫本身內改變(例如,他添加了一個新列)。沒有註釋或XML文件的Docfine中的Symfony映射

我的任務是用symfony開發一個管理區域,該區域自動對錶格模式更改作出反應,而不修改應用程序代碼。例如。客戶在表格「MyEntity」中添加一個新列,應用程序會在相應的列表視圖中自動生成一個新列。

我的方法是動態地將表列映射到Entity類,以便所有屬性和所有Getters/Setters都是從表模式動態生成的。

所以有可能在不使用註釋或XML文件的情況下映射Doctrine實體中的表列。

喜歡的東西:

class MyEntity{ 

    public function generateMappingFromSchema($sTableName){...} 

} 

回答

0

請不要那樣做。學說不是爲這種用例設計的。

雖然你應該檢查https://github.com/laravel-doctrine/fluent這個庫,它基本上是一個映射驅動程序,它允許你在面向對象的方法中管理你的映射。還有其他的工具:

http://crud-admin-generator.com/
http://crudkit.com/
http://www.grocerycrud.com/

這對也許更好,我不知道。

但是,請不要那樣做。不允許客戶修改數據庫模式或給他們例如爲此設計的phpMyAdmin

+0

首先感謝您的回答。 我知道允許用戶修改數據庫並不好,但這是他們想要的一部分。否則,他們會尋找其他人。 我會檢查你的建議。 – jb7AN

+0

如果他們不明白爲什麼它不好,那麼也許這對你更好:)(但這不是我的事,這只是我的異議觀點,你沒有問過:))。 – 1ed