10/02/2008

CakePHP: Uso de beforeSave y afterSave

Es interesante y útil la existencia, en el modelo, de los métodos (callback) beforeSave y afterSave para manipular los datos antes o después de que vayan a ser grabados en la Base de Datos.

Un detalle muy importante a la hora de implementarlos en nuestros modelos es que debemos retornar un true o un false según el resultado del código de nuestra función.

function beforeSave(){
     // Código ...
     return true;
}

Mirando el código de la clase model, veo que sus métodos beforeSave y afterSave retornan un true por defecto. Ahora me pregunto si en caso de que queramos retornar un true en nuestra implementación, es más correcto retornar una llamada al método padre:

return parent::beforeSave();

De esta manera nos aseguramos que si algún día estos métodos en las clases padre tienen algo más implementado que un simple return true, ese código sea ejecutado. En caso de hacer este tipo de retorno, deberemos estar pendientes de futuras versiones de CakePHP, para ver si añaden nuevo código en estas funciones base.