2.1.3 Modell kiterjesztések

Az előzőekhez hasonlóan a viselkedések (behaviors) a modellekhez adnak hozzá általános funkciókat. Például ha az adataidat egy fa struktúrában tárolod akkor mondjuk a User modellt meghatározhatod úgy, hogy faként viselkedjen, és így az elemek hozzáadása, eltávolítása vagy áthelyezése a háttérben lévő viselkedés segítségével automatikusan kezelhető.

A modellek rendelkeznek egy adatforrás DataSource nevű osztállyal. Az adatforrások egy absztrakt réteg amely abban segít, hogy a modell egyidejűleg többféle adatforrással dolgozzon. A CakePHP alkalmazásokban általában a fő adatforrás egy adatbázis, de meghatározhatsz kiegészítő adatforrásokat melyekből a modell adatokat szerezhet, legyenek azok akár RSS csatornák, LDAP bejegyzések, vagy iCal események. Az adatforrások lehetővé teszik, hogy a különböző helyről származó adatokat összekapcsold. így nem vagy lekorlátozva SQL joinokra. Az adatforrások lehetővé teszik, hogy megadd, hogy az LDAP modelled kapcsolatban van több iCal eseménnyel.

Akárcsak a vezérlőkben a modellekben is használhatunk callback-okat:

  • beforeFind() - keresés előtt
  • afterFind() - keresés után
  • beforeValidate() - adatellenőrzés előtt
  • beforeSave() - mentés előtt
  • afterSave() - mentés után
  • beforeDelete() - törlés előtt
  • afterDelete() - törlés után

Az eljárások nevei eléggé kifejezőek ahhoz, hogy megértsd, hogy mit is csinálnak. A részletekről a modell fejezetben olvashatsz.