2011-10-12 103 views
0

我使用doctrine2 cli生成實體。doctrine2 - 生成實體

我有在PHP中用docblock定義的原始類。 當我運行教條orm:生成實體,創建新文件 - 生成字段,並創建方法(setters/getters)。

問題是,我想從原始文件複製我自己的自定義方法(不擴展文件)。

例如: 我有skel中\ Employee.php用:

class Employee { 
    /** comments */ 
    public $key; 
    public function myCustomMethod(){ 
     .... 
    } 
} 

當我運行ORM:生成-entites的,型號\ Employee.php創建但myCustomMethod()不被複制

有沒有辦法複製自定義命令?

回答

0

代碼先用註解映射創建的模型/實體然後使用orm:schema-tool:create來創建數據庫架構,如果不這樣做自動,orm:generate-proxies

見注here

但是,如果將此把更多的邏輯上,你應該使用實體發電機避免手動編寫你的實體的實體。

+0

是應該加載的代理文件?或只是實體文件?我使用代碼點火器並使用$ this-> em-> find('models \ Employee',1)加載數據; – galchen

+0

代理由運行時自動生成(通常用於開發)或手動生成。見http://www.doctrine-project.org/docs/orm/2.0/en/reference/configuration.html#auto-generating-proxy-classes-optional。代理對你的應用程序是不可見的(它們擴展你的實體),但實質上是實體管理器/庫返回 – Phil

+0

事情是,我希望實體是自動生成的,並且我需要複製自定義方法。現在我可以看到它們被複制到代理中,但代理嘗試運行parent :: myCustomMethod()(parent =生成的實體)。它不包含方法 – galchen