2010-02-01 69 views
0
優化圖像處理

假設一個主義模式Profile如何Symfony的從模型

# This is example of my schema.yml 
Profile: 
columns: 
    avatar: 
    type: string(255) 
    notnull: true 

我的目標是產生從上傳的文件輪廓的化身:

class Avatar extends BaseAvatar{ 
    public function postSave($e){ 
    if($this->getAvatar()){ 
     // resize/crop it to 100x100 
     // and save 
    } 
} 

這個邏輯是爲我好,現在。但我Profile相關記錄更新與一些額外的信息,每隔請求。而且,正如你所看到的,產生化身文件一遍又一遍,儘管事實上,avatar場可以保持不變。

問題:框架如何確定特定的字段是否被更新或不?

注意:我不需要更新symfony的操作,因爲代碼在多個應用程序中重複。或者,也許我需要?

回答

0

如果您使用的是表單顯示配置文件編輯領域,我建議通過重寫saveFile方法移動你的大小調整代碼到那裏,你從sfFormDoctrine繼承:

protected function saveFile($field, $filename = null, sfValidatedFile $file = null) 
{ 
    $finalFilename = parent::saveFile($field, $filename, $file); 
    if($field == 'avatar') 
    { 
    // generate thumbnail from $finalFilename 
    } 
} 

當保存時調用( )方法在您的表單上調用。希望有所幫助。