2.1.3 Estensioni dei Model

Allo stesso modo i Behavior lavorano in maniera simile per apportare le proprie funzionalità a differenti modelli. Per esempio, se voi inserite dei dati utente in una struttura ad albero, potreste specificare che il vostro modello User ha un comportamento come un albero ed ottenere, gratis, le funzionalità per rimuovere, aggiungere e spostare i nodi della vostra struttura ad albero sottostante.

I modelli sono supportati anche da un'altra classe denominata DataSource. I DataSource sono un'astrazione che abilita i modelli a manipolare differenti tipi di dati in maniera consistente. Mentre la maggior parte dei dati in CakePHP proviene spesso da un database, si potrebbero scrivere dei DataSource aggiuntivi che forniscano ai modelli il modo per rappresentare feed RSS, file CVS, entità LDAP o eventi iCal. I DataSource vi permettono di associare record tra sorgenti differenti. Piuttosto che essere limitati ad un join SQL, i DataSource vi danno la possibilità di dire al vostro modello LDAP che è associato a vari eventi iCal.

Così come i Controller. i modelli sono costruiti con metodi di callback come segue:

  • beforeFind()
  • afterFind()
  • beforeValidate()
  • beforeSave()
  • afterSave()
  • beforeDelete()
  • afterDelete()

I nomi di questi metodi dovrebbero essere abbastanza descrittivi da permettervi di conoscere quello che fanno. Assicuratevi di comprenderne i dettagli nel capitolo sui modelli.