3.8 Comportamientos
Los comportamientos del modelo (Model behaviors) son una manera de organizar parte de la funcionalidad definida en los modelos de CakePHP. Nos permiten separar la lógica que puede no estar relacionada directamente con un modelo, pero que necesita estar ahí. Proveyendo una manera simple pero potente manera de extender modelos, los comportamientos nos permiten atar funcionalidad a los modelos definiendo una simple variable de clase. Así es como los comportamientos permiten a los modelos deshacerse de todo el peso extra que no debería ser parte de contrato de negocio que están modelando, o al menos es necesario en diferentes modelos y puede, entonces, ser extrapolado.
Como ejemplo, considera un modelo que nos da acceso a una tabla de una base de datos la cual almacena información estructural de un árbol. Eliminando, añadiendo y migrando nodos en el árbol no es tan simple como borrar, insertar y editar filas en una tabla. Muchos registros deberán ser actualizados según las cosas se mueven. En vez de crear esos métodos de manipulación del árbol en cada base de modelo (para todo modelo que necesita dicha funcionalidad), podríamos simplemente decirle a nuestro modelo que utilize el TreeBehavior (ArbolComportamiento), o en términos más formales, decirle a nuestro modelo que se comporte como un Árbol. Esto es conocido como atar un comportamiento a un modelo. Con sólo una línea de código, nuestro modelo de CakePHP toma todo un nuevo conjunto de métodos que le permiten interactuar con la estructura subyacente.
CakePHP ya incluye comportamientos para estructuras de árbol, contenido traducido, interacción con listas de control de acceso, sin comentar los comportamientos aportados por la comunidad disponibles en CakePHP Bakery. En esta sección cubriremos el patrón básico de uso para añadir comportamientos a modelos, cómo utilizar los comportamientos de CakePHP incorporados y cómo crear crear uno nosotros mismos.
