2010-06-17 349 views
1

這個問題涉及到很多symfony,但是應該很容易讓某人跟隨誰只知道YAML而不是symfony。YAML可以繼承嗎?

我的symfony模型來自三個步驟:首先,我在MySQL中創建表。其次,我運行一個symfony命令(symfony doctrine:build-schema)將我的表結構轉換爲YAML文件。第三,我運行另一個symfony命令(symfony doctrine:build-model)將YAML文件轉換爲PHP代碼。

問題出在這裏:數據庫中有一些表,我不想最終在我的symfony代碼中。例如,假設我有兩個表格:一個叫做my_table,另一個叫做wordpress。在YAML文件我最終可能是這樣的:

MyTable: 
    connection: doctrine 
    tableName: my_table 
Wordpress: 
    connection: doctrine 
    tableName: wordpress 

這是偉大的,除了wordpress表有沒有關係我symfony的模型。結果是每次我對數據庫進行更改並生成這個YAML文件時,我都必須手動刪除wordpress。它很煩人!

我希望能夠創建一個名爲baseConfig.php什麼文件看起來像這樣:

$config = array(
    'MyTable' => array(
    'connection' => 'doctrine', 
    'tableName' => 'my_table', 
), 
    'Wordpress' => array(
    'connection' => 'doctrine', 
    'tableName' => 'wordpress', 
), 
); 

然後,我可以有一個單獨的文件名爲config.php文件或東西在那裏我可以進行修改,基本配置:

unset($config['Wordpress']); 

所以我的問題是:有沒有辦法YAML轉換成可執行的PHP代碼(相對於加載YAML到PHP代碼,像什麼sfYaml :: load()方法一樣)來實現這種事情?或者是否有其他方法可以實現YAML繼承? 謝謝, 傑森

+3

你可能要考慮你怎麼問這個問題。你已經想到了一個解決方案,並據此提出。通過詢問根本問題,您可能會得到更好的服務:如何讓Doctrine的模式構建器忽略某些表。 – Charles 2010-06-17 01:45:04

回答