Table of Contents : Le Manuel

Extensions du Modèle

De même, les Comportements ou Behaviors fonctionnent comme des passerelles pour ajouter une fonctionnalité commune aux modèles. Par exemple, si vous stockez les données d'un utilisateur dans une structure en arbre, vous pouvez spécifier que votre modèle Utilisateur se comporte comme un arbre, et il acquèrera automatiquement la capacité de suppression, d'ajout, et de déplacement des noeuds dans votre structure en arbre sous-jacente.

Les modèles sont aussi soutenus par une autre classe nommée une DataSource (source de données). Il s'agit d'une couche d'abstraction qui permet aux modèles de manipuler différents types de données de manière consistante. La plupart du temps la source principale de données dans CakePHP est une base de données, vous pouvez cependant écrire des DataSources additionnelles pour représenter des flux RSS, des fichiers CSV, des entrées LDAP ou des évènements iCal. Les DataSources vous permettent d'associer des enregistrements issus de sources différentes : plutôt que d'être limité â des jointures SQL, les DataSources vous permettent de dire â votre modèle LDAP qu'il est associé à plusieurs événements iCal.

Tout comme les contrôleurs, les modèles sont également caractérisés par des fonctions de rappel (callbacks) :

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

Les noms de ces méthodes devraient être suffisamment explicites pour que vous compreniez leurs rôles. Vous obtiendrez plus de détails dans le chapître sur les modèles.