2.1.3 Extensões de Modelo

Assim como as outras extensões, os Behaviors funcionam do mesmo modo, adicionando funcionalidades entre os modelos. Por exemplo, se você armazenar os dados do usuário em uma estrutura de árvore, você pode especificar o modelo User como comportamento de árvore e ganhar funcionalidades para remover, adicionar e alterar nós em sua estrutura de árvore fundamental.

Os modelos também são suportados por outra classe chamada DataSource. DataSources são abstrações que permitem os modelos manipularem diferentes tipos de dados consistentemente. Enquanto a principal fonte de dados numa aplicação CakePHP é via banco de dados, você pode escrever DataSources adicionais que permitem seu modelo representar um feed RSS, arquivo CSV, entidades LDAP ou eventos iCal. DataSources permite você associar registros de diferentes fontes: ao invés de limitar em joins do SQL, DataSources permitem você chamar seu modelo de LDAP que está associada a vários eventos iCal.

Assim como nos controladores, modelos têm recursos de callback como:

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

Os nomes desses métodos devem ser descritivos o bastante para que você saiba o que eles fazem. Certifique-se de pegar os detalhes no capítulo sobre modelo.