Sie sind auf Seite 1von 11

1.1 Qu es CakePHP y por qu hay que utilizarlo?

CakePHP es un marco de desarrollo [framework] rpido para PHP, libre, de cdigo abierto. Se trata de una estructura que sirve de base a los programadores para que stos puedan crear aplicaciones Web. Nuestro principal objetivo es que puedas trabajar de forma estructurada y rpida, sin prdida de flexibilidad.

Con CakePHP el desarrollo web ya no es montono porque ofrecemos las herramientas para que empieces a escribir el cdigo que realmente necesitas: la lgica especfica de tu aplicacin. Consigue una copia de CakePHP, empieza con lo verdaderamente importante y no reinventes la rueda cada vez que te incorpores a un nuevo proyecto.

CakePHP tiene un equipo de desarrolladores y una comunidad activos, lo que aade valor al proyecto. Con CakePHP, adems de no tener que reinventar la rueda, el ncleo de tu aplicacin se mejora constantemente y est bien probado.

Esta es una lista breve con las caractersticas de las que disfrutars al utilizar CakePHP:

Comunidad activa y amistosa Licencia flexible Compatible con PHP4 y PHP5 CRUD integrado para la interaccin con la base de datos Soporte de aplicacin [scaffolding] Generacin de cdigo Arquitectura Modelo Vista Controlador (MVC) Despachador de peticiones [dispatcher], con URLs y rutas personalizadas y limpias Validacin integrada Plantillas rpidas y flexibles (sintaxis de PHP, con ayudantes[helpers]) Ayudantes para AJAX, Javascript, formularios HTML y ms Componentes de Email, Cookie, Seguridad, Sesin y Manejo de solicitudes Listas de control de acceso flexibles Limpieza de datos Cach flexible Localizacin Funciona en cualquier subdirectorio del sitio web, con poca o ninguna configuracin de Apache

1.3 Entendiendo Modelo-Vista-Controlador


Las aplicaciones CakePHP bien escritas siguen el patrn de diseo de software MVC (Modelo-Vista-Controlador). Programar utilizando MVC consiste en separar la aplicacin en tres partes principales. El modelo representa los datos de la aplicacin, la vista hace una presentacin del modelo de datos, y el controlador maneja y enruta las peticiones [requests] hechas por los usuarios.

Figura 1: Una peticin MVC bsica

La figura 1 muestra un ejemplo sencillo de una peticin [request] MVC en CakePHP. A efectos ilustrativos, supongamos que un usuario llamado Ricardo acaba de hacer clic en el enlace "Comprar un pastel personalizado ahora!" de la pgina inicial de la aplicacin.

1.

Ricardo hace clic en el enlace apuntando a http://www.ejemplo.com/pasteles/comprar, y su navegador hace una peticin al servidor web.

2.

El despachador comprueba la URL de la peticin (/pasteles/comprar), y le pasa la peticin al controlador adecuado.

3. 4.

El controlador realiza lgica de aplicacin especfica. Por ejemplo, puede comprobar si Ricardo ha iniciado sesin. El controlador tambin utiliza modelos para acceder a los datos de la aplicacin. La mayora de las veces los modelos representan tablas de una base de datos, aunque tambin pueden representar entradas LDAP, canales RSS, o ficheros en el sistema. En este ejemplo, el controlador utiliza un modelo para buscar la ltima compra de Ricardo en la base de datos.

5.

Una vez que el controlador ha hecho su magia en los datos, se los pasa a la vista. La vista toma los datos y los deja listos para su presentacin al usuario. La mayora de las veces las vistas en CakePHP vienen en formato HTML, pero una vista puede ser fcilmente un PDF, un documento XML, o un objeto JSON, dependiendo de tus necesidades.

6.

Una vez que el objeto encargado de procesar vistas en CakePHP ha utilizado los datos del controlador para construir una vista completa, el contenido se devuelve al navegador de Ricardo.

Casi todas las peticiones a tu aplicacin seguirn este patrn bsico. Ms adelante, vamos a completar algunos detalles especficos de Cake, as que, por favor, ten esto en cuenta a medida que avanzamos.

Beneficios
Por qu utilizar MVC? Porque es un patrn de diseo de software probado y se sabe que funciona. Con MVC la aplicacin se puede desarrollar rpidamente, de forma modular y mantenible. Separar las funciones de la aplicacin en modelos, vistas y controladores hace que la aplicacin sea muy ligera. Estas caractersticas nuevas se aaden fcilmente y las antiguas toman automticamente una forma nueva.

El diseo modular permite a los diseadores y a los desarrolladores trabajar conjuntamente, as como realizar rpidamente el prototipado. Esta separacin tambin permite hacer cambios en una parte de la aplicacin sin que las dems se vean afectadas.

Aunque lleva algn tiempo acostumbrarse a construir aplicaciones as, estamos seguros de que, una vez construyas tu primera aplicacin con CakePHP, no querrs volver a hacerlo de otra forma.

2 Principios bsicos de CakePHP


El framework CakePHP proporciona una base robusta para tu aplicacin. Puede manejar cualquier aspecto, desde la solicitud inicial del usuario hasta el renderizado final de la pgina web. Adems, como el framework sigue los principios MVC, puedes fcilmente personalizar y extender muchos aspectos de tu aplicacin.

El framework tambin proporciona una estructura de organizacin bsica, desde los nombres de los archivos hasta los de las tablas de la base de datos, manteniendo toda tu aplicacin consistente y lgica. Este aspecto es simple pero poderoso. Sigue las convenciones y siempre sabrs exactamente dnde estn las cosas y cmo estn organizadas.

2.1 Estructura de CakePHP


CakePHP incluye las clases Controlador [Controller], Modelo [Model] y Vista [View], pero tambin incluye otras clases y objetos que hacen que el desarrollo en MVC sea un poco ms rpido y agradable. Los Componentes [Components], Comportamientos [Behaviors], y Ayudantes [Helpers] son clases que proporcionan extensibilidad y reusabilidad; agregan rpidamente funcionalidad a las clases base MVC de las aplicaciones. Como de momento nos vamos a mantener en este nivel de dificultad, ve preparando los detalles acerca de cmo usar estas herramientas.

2.1.1 Extensiones de los Controladores ("Componentes")


Un componente es una clase que ayuda a la lgica de un controlador. Si tienes alguna lgica y la quieres compartir entre varios controladores (o aplicaciones), un componente suele ser una buena eleccin. A modo de ejemplo, la clase del ncleo EmailComponent hace que la creacin y el envo de mensajes de correo electrnico sea tan sencillo como coser y cantar. En lugar de escribir lgica en el mtodo de un controlador, puedes empaquetarla en un componente para poder compartirla. Los Controladores tambin estn equipados con callbacks. Puedes utilizar estos callbacks si necesitas insertar alguna lgica en las operaciones del ncleo de CakePHP. Los Callbacks disponibles incluyen: beforeFilter(), se ejecuta antes que cualquier otra accin del controlador beforeRender(), se ejecuta despus de la lgica del controlador, pero antes de que la vista se renderice afterFilter(), se ejecuta despus de toda la lgica del controlador, incluido el renderizado de la vista. Puede que no haya ninguna diferencia entre afterRender() y afterFilter(), a menos que hayas llamado manualmente a render() en el controlador y hayas incluido alguna lgica despus de esa llamada.

2.1.2 Extensiones de las Vistas


Un ayudante [Helper] es una clase que ayuda a la lgica de una vista. Del mismo modo que varios controladores utilizan un componente, los ayudantes [helpers] hacen que varias vistas accedan y compartan lgica presentacional. Con uno de los ayudantes del ncleo, el AjaxHelper, el manejo de las peticiones Ajax en las vistas es mucho ms fcil. La mayora de las aplicaciones repiten piezas de cdigo en sus vistas. CakePHP facilita la reutilizacin de este cdigo con diseos [layouts] y elementos [elements]. Por defecto, toda vista renderizada por un controlador se coloca en un diseo [layout]; los elementos entran en juego cuando hay que reutilizar estos fragmentos pequeos de contenido.

2.1.3 Extensiones de los Modelos


Del mismo modo, los Comportamientos [Behaviors] son formas de aadir funcionalidad comn entre los modelos. Por ejemplo, si almacena datos de los usuarios en una estructura de rbol, puede especificar que su modelo de usuario se comporte como un rbol, y obtener libre funcionalidad para eliminar, aadir, y mover nodos en la estructura de rbol subyacente. Los modelos tambin cuentan con el apoyo de otra clase llamada DataSource (Origen de datos). Los DataSources son una abstraccin que permite a los modelos manipular diferentes tipos de datos en forma consistente. Si bien la principal fuente de datos en una aplicacin CakePHP es a menudo una base de datos, puede escribir DataSources adicionales que le permitan a sus modelos representar canales RSS, archivos CSV, entradas LDAP, o eventos iCal. Los DataSources le permiten asociar registros de diferentes fuentes: en lugar de limitarse slo a uniones [joins] SQL, los DataSources le permiten decirle a su modelo LDAP que est asociado a muchos eventos iCal. As como los controladores, los modelos tambin incluyen callbacks: beforeFind() afterFind() beforeValidate() beforeSave() afterSave() beforeDelete() afterDelete() Los nombres de estos mtodos deben ser lo suficientemente descriptivos para que sepa lo que hacen. Asegrese de obtener los detalles en el captulo acerca de los modelos.

2.1.4 Extensiones de la Aplicacin


Tanto los controladores como los ayudantes [helpers] y modelos tienen una clase padre que puede usarse para definir cambios a nivel global de la aplicacin. AppController (localizado en /app/app_controller.php), AppHelper (localizado en /app/app_helper.php) y AppModel (localizado en /app/app_model.php) son magnficos lugares donde colocar mtodos que desee compartir entre todos los controladores, ayudantes [helpers] o modelos. Las rutas juegan un rol en las peticiones hechas a CakePHP. Las definiciones de rutas le dicen a CakePHP cmo mapear URLs a acciones de controladores. El comportamiento por defecto asume que la URL "/controller/action/var1/var2/" mapea a Controller::action($var1, $var2), pero puede usar rutas para personalizar URLs y la forma en que stas son interpretadas por su aplicacin. Algunas caractersticas en una aplicacin merecen ser empaquetadas como un todo. Un plugin es un paquete de modelos, controladores y vistas que cumplen un propsito especfico que puede abarcar mltiples aplicaciones. Un sistema de administracin de usuarios o un blog simplificado pueden ser buenos ejemplos para plugins de CakePHP.

2.2 Una peticin tpica de CakePHP


Hemos cubierto los ingredientes bsicos de CakePHP, as que echemos un vistazo a cmo los objetos trabajan juntos para completar una peticin bsica. Continuando con nuestro ejemplo de peticin original, imaginemos que nuestro amigo Ricardo acaba de hacer clic en el enlace "Comprar un pastel personalizado ahora!" en una pgina de bienvenida de una aplicacin CakePHP.

Figura 2. Peticin tpica de Cake. Negro = elemento requerido, Gris = elemento opcional, Azul = callback Ricardo hace clic en el enlace apuntando a http://www.ejemplo.com/tortas/comprar, y su navegador hace una peticin a su servidor Web. El enrutador analiza la URL para extraer los parmetros para esta peticin: el controlador, la accin, y cualquier otro argumento(s) que pueda afectar a la lgica de negocio durante esta peticin. Usando las rutas, una peticin URL es mapeada a una accin de controlador (un mtodo en una clase de controlador especfica). En este caso, es el mtodo comprar() del controlador PastelesController. El callback beforeFilter() del controlador es llamado antes de que cualquier accin lgica del controlador sea ejecutada. El controlador puede usar modelos para ganar acceso a los datos de la aplicacin. En este ejemplo, el controlador usa un modelo para obtener informacin de la base de datos de las ltimas compras de Ricardo. Cualquier callback de modelo, comportamiento [behavior], y orgenes de datos [DataSources] aplicables pueden activarse durante esta operacin. Mientras que el uso del modelo no es requerido, todos los controladores de CakePHP inicialmente requieren al menos un modelo, salvo que el desarrollador indique lo contrario. Despus que el modelo ha obtenido toda la informacin, sta es devuelta al controlador. Pueden activarse callbacks del modelo. El controlador puede usar componentes para refinar aun ms los datos o realizar otras operaciones (manipulacin de sesiones, autenticacin, o envos de email, por ejemplo). Una vez que el controlador ha usado modelos y componentes para preparar suficientemente la informacin, sta es entregada a la vista usando el mtodo set() del controlador. Los callbacks de controlador pueden ser aplicados antes de que la informacin sea enviada. La lgica de vista es ejecutada, la cual puede incluir el uso de elementos y/o ayudantes [helpers]. Por defecto, la vista es creada dentro del diseo [layout]. Callbacks del controlador adicionales (como afterFilter) pueden ser aplicados. El cdigo completo creado por la vista es enviado al navegador de Ricardo.

2.3 Estructura de archivos de CakePHP



Tras descargar y extraer CakePHP, estos sern los ficheros y carpetas que deberas ver: app cake plugins vendors .htaccess index.php README Observars 3 carpetas principales: La carpeta app ser donde haremos nuestra magia: es donde se ubicarn los ficheros de tu aplicacin. La carpeta cake es donde nosotros hemos hecho nuestra magia. Compromtete a no modificar los ficheros de esta carpeta. No podremos ayudarte si has modificado el ncleo. Finalmente, la carpeta vendors es donde ubicars las libreras PHP de terceros que necesites usar con tus aplicaciones en CakePHP.

La Carpeta App
La carpeta app de CakePHP es donde realizars la mayor parte del desarrollo de tu aplicacin. Vemos un poco ms de cerca las carpetas dentro de app. config Contiene los (pocos) archivos de configuracin que usa CakePHP. Detalles de conexin a bases de datos, arranque (bootstrapping), archivos de configuracin del ncleo y dems deberan ser almacenados aqu.

controllers Contiene los controladores de tu aplicacin y sus componentes. locale models plugins Almacena archivos de cadenas de texto para la internacionalizacin. Contiene los modelos de tu aplicacin, comportamientos (behaviors) y orgenes de datos (datasources). Contiene los paquetes de plugins.

tmp

Aqu es donde CakePHP almacena datos temporales. La informacin que realmente se almacena depende de cmo hayas configurado CakePHP, pero normalmente esta carpeta es usada para almacenar descripciones de modelos, registros (logs) y algunas veces informacin de sesiones. Asegrate de que esta carpeta existe y tiene permisos de escritura, ya que de lo contrario el rendimiento de tu aplicacin se ver muy afectado. En modo debug CakePHP te avisar si este no es el caso. Cualesquiera clases o libreras de terceros deberan ser ubicadas aqu. Hacerlo as hace que sea ms fcil de acceder a ellas usando la funcin App::Import('vendor','nombre'). Los observadores meticulosos notarn que esto parece redundante, ya que tambin existe una carpeta vendors en el nivel superior de nuestra estructura de directorios. Veremos las diferencias entre las dos cuando discutamos acerca de la administracin de mltiples aplicaciones y configuraciones de sistemas ms complejos. Los archivos de presentacin son ubicados aqu: elementos (elements), pginas de error, ayudantes (helpers), layouts y archivos de vistas. En una configuracin de produccin, esta carpeta debera servir como la raz del sitio (document root) para tu aplicacin. Las carpetas aqu tambin sirven como lugares de almacenamiento para hojas de estilo en cascada (CSS stylesheets), imgenes y archivos JavaScript.

vendors

views

webroot

2.4 Convenciones de CakePHP


Somos grandes fanticos de convencin sobre configuracin. Aun cuando toma un poco de tiempo aprender las convenciones de CakePHP, usted ahorrar tiempo en la marcha: siguiendo las convenciones, usted obtiene libre funcionalidad, y tambin se libera de la pesadilla del mantenimiento del seguimiento de los archivos de configuracin. Las convenciones tambin hacen un sistema de desarrollo muy uniforme, permitiendo a otros desarrolladores ayudar ms fcilmente. Las convenciones de CakePHP han sido destiladas de aos de experiencia de desarrollo web y mejores prcticas. Mientras que le sugerimos el uso de estas convenciones durante el desarrollo con CakePHP, deberamos mencionar que muchos de estos postulados pueden ser anulados, esto es especialmente til cuando se trabaja con sistemas heredados.

2.4.1 Convenciones de los nombres de archivos y clases


En general, los nombres de archivo llevan el smbolo underscore "_", mientras que los nombres de las clases usan CamelCase. La clase MyNiftyClass puede ser encontrada en el archivo my_nifty_class.php, por ejemplo. Sin embargo, el nombre de la clase que contiene un archivo puede no necesariamente ser encontrada en el nombre de archivo. La clase EmailComponent es encontrada en un archivo llamado email.php, y la clase HtmlHelper es encontrada en un archivo llamado html.php.

2.4.2 Convenciones de Modelo y de la Base de datos


Los nombres de las clases de modelos estn en singular y en formato CamelCase. Persona, PersonaGrande, y PersonaMuyGrandeson todos ejemplos de nombres de modelos convencionales. Los nombres de las tablas correspondientes a modelos de CakePHP estn en plural y usando guin bajo. Las tablas subyacentes para los modelos arriba mencionados seran: personas, personas_grandes, y personas_muy_grandes respectivamente. Puedes utilizar la librera de utilidades "Inflector" para verificar las palabras singulares/plurales. Consulta la documentacin de Inflector para ms informacin. Los nombres de los campos con dos o ms palabras se definen con guiones bajos: nombre_y_apellidos. El nombre por defecto de las claves forneas en relaciones hasMany, belongsTo o hasOne, es el nombre de la tabla relacionada (en singular) seguido de _id. As, si Panadero hasMany Tarta, la tabla tartas referenciar la tabla panaderos mediante la clave forneapanadero_id. Para una tabla compuesta por varias palabras como tipos_categorias, la clave fornea sera tipo_categoria_id. El nombre de las tablas de unin entre modelos, usadas en relaciones hasAndBelongToMany (HABTM), debera estar formado por el nombre de las tablas que une puestos en orden alfabtico (cebras_manzanas en vez de manzanas_cebras). Todas las tablas con las que interaccionan los modelos de CakePHP (con excepcin de las de unin de tablas) necesitan una clave primaria simple que identifique inequvocamente cada fila. Si deseas modelar una tabla que no tiene una clave primaria de un slo campo, como por ejemplo las filas de una tabla de unin posts_tags, la convencin de CakePHP dicta que se aada una clave primaria de un solo campo a la tabla. CakePHP no soporta claves primarias compuestas. Si deseas manipular directamente los datos de tu tabla de unin, usa llamadas directas aquery o aade una clave primaria para que actue como un modelo normal. Por ejemplo: CREATE TABLE posts_tags ( id INT(10) NOT NULL AUTO_INCREMENT, post_id INT(10) NOT NULL, tag_id INT(10) NOT NULL, PRIMARY KEY(id) ); En vez de utilizar una clave autoincremental como clave primaria, puedes utilizar char(36). De este modo CakePHP utilizar un uuid(String::uuid) nico de 36 caracteres siempre que grabes un nuevo registro utilizando el mtodo Model::save.

2.4.3 Convenciones de Controladores


Los nombres de las clases de los controladores son en plural, con formato CamelCased, y Terminan en Controller. PersonasController y UltimosArticulosController son ejemplos de nombres convencionales de controladores. El primer mtodo que escribas para un controlador debe de ser el mtodo index(). Cuando la peticin especifica un controlador pero no una accin, el comportamiento por defecto de CakePHP es ejecutar el mtodo index() de dicho controlador. Por ejemplo, una peticin de http://www.example.com/apples/ se corresponde con la llama al mtodo index() del controlador ApplesController, mientras que http://www.example.com/apples/view se corresponde con una llamada al mtodo view() del controlador ApplesController. Tambin puedes cambiar la visibilidad de los mtodos de los controladores en CakePHP anteponiendo al nombre del mtodo guiones bajos. Si un mtodo de un controllador comienza por un guin bajo, el mtodo no ser accesible diretamente desde la web, sino que estar disponible slo para uso interno. Por ejemplo: Copy to Clipboard
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

<?php class NoticiasController extends AppController { function ultimas() { $this->_buscaNuevosArticulos(); } function _buscaNuevosArticulos() { //Lgica para encontrar los nuevos articulos. } } ?>

Mientras que la pgina http://www.example.com/noticias/ultimas/ est accesible de manera normal, si alguien intenta acceder a la pgina http://www.example.com/noticias/_buscaNuevosArticulos/ obtendr un error porque el nombre del mtodo est precedido por un guin bajo.

2.4.3.1 Consideraciones de URL para nombres de controladores


Como se puede ver, los controladores con un nombre simple (de una sola palabra) pueden ser fcilmente mapeados a una url en minsculas. Por ejemplo, ApplesController (que se define en el archivo 'apples_controller.php') y accedido desde http://example.com/apples. Por otro lado mltiples combinaciones de palabras pueden ser transformadas automticamente en un mismo nombre de controlador: /redApples /RedApples /Red_apples /red_apples Todas resuelven la accin index de controlador RedApples. sin embargo, la convencin es que las urls sean en minsculas y separadas con guin bajo, por lo tanto /red_apples/go_pick es la forma correcta de acceder a la accin. RedApplesController::go_pick.

2.4.4 Convenciones de Vistas


Los archivos de plantillas de Vistas (Views) deben ser nombradas despus de las funciones de los controladores con guin bajo "_". La funcion getReady() del controlador PeopleController se visualizara con la plantilla de vista en /app/views/people/get_ready.ctp por ejemplo. El patrn bsico es: /app/views/controller/underscored_function_name.ctp Al nombrar las piezas de su aplicacin utilizando las convenciones de CakePHP, usted adquiere funcionalidad sin mucho mantenimiento de la configuracin. Aqu encontramos un ejemplo final de las convenciones Tabla de Base de Datos: people Clase de Modelo: Person, encontrada en /app/models/person.php Clase de Controlador: PeopleController, encontrada en /app/controllers/people_controller.php

Plantilla de Vista, encontrada en /app/views/people/index.ctp Usando estas convenciones, CakePHP entiende que la peticion http://example.com/people/ apunta a la llamada de funcion index() en el controlador , PeopleController, donde el modelo Person esta disponible automaticamente (y apunta automaticamente a la tabla people en la base de datos), y se renderiza en el archivo. Ninguna de estas relaciones han sido configuradas por otra razon que crear clases y archivos que usted necesita crear. Ahora que usted ya se ha involucrado con los fundamentos de CakePHP, puede revisar el tutorial para realizar un Blog en CakePHP, que se encuentra al final de este manual.

3.5 Controladores
Introduccin
Un controlador (Controller) se usa para manejar la lgica de cierta seccin de su aplicacin. Comnmente, los controladores (Controllers) son usados para manejar la lgica de un solo modelo (Model). Por ejemplo, si ests construyendo un sitio de una pastelera, podras tener un RecetasController y un IngredientesController para manejar las recetas y sus ingredientes. En CakePHP, los controladores se nombran segn el modelo que manejan, y se ponen siempre en plural. El modelo Receta es manejado por el RecetasController, el modelo Producto es manejado por el ProductosController, y as sucesivamente. Los controladores de su aplicacin son sub-clases de la clase AppController de CakePHP, que a su vez extiende la clase principal Controller. La clase AppController puede ser definida en /app/app_controller.php y debe contener mtodos que son compartidos entre todos los controladores de su aplicacin. AppController es una sub-clase de Controller que es una clase de la biblioteca estndar de Cake. Los controladores pueden tener cualquier cantidad de mtodos a los que normalmente se les llama acciones. Las acciones son mtodos de controladores en tu aplicacin web para mostrar vistas. Una accin es un nico mtodo de un controlador. El Dispatcher de CakePHP ejecuta acciones cuando una solicitud entrante contiene en su URL el nombre de una accin del controlador. El controlador estara ubicado en /app/controllers/recetas_controller.php con el siguiente contenido: Copy to Clipboard
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.

<?php # /app/controllers/recetas_controller.php class RecetasController extends AppController { function ver($id) { //la lgica de la accin va aqui... } function compartir($cliente_id, $receta_id) { //la lgica de la accin va aqui... } function buscar($query) { //la lgica de la accin va aqui... } } ?>

Para que puedas usar un controlador de manera productiva en tu propia aplicacin, repasaremos algunos de los atributos y mtodos provistos por los controladores de CakePHP.

3.5.1 The App Controller


Como se coment en la introduccin, la clase AppController es la clase superior a todos los controladores de tu aplicacin. AppController extiende la clase Controller incluida en la libreria base de CakePHP. As, AppController es definida en /app/app_controller.php como: Copy to Clipboard
1. 2. 3. 4.

<?php class AppController extends Controller { } ?>

Las propiedades y mtodos creados en tu AppController estarn disponibles para todos los controladores de tu aplicacin. Es el sitio ideal para poner el cdigo que ser comn a todos los controladpres de tu aplicacin. Los Componentes (los cuales veremos despus) son lo ms utilizado para el cdigo que se utiliza en la mayora (pero no necesariamente en todos) los controladores Cuando se aplica la herencia a los objetos, CakePHP tambin realiza un trabajo extra cuando existen atributos especiales en el controlador, como una lista de componentes o ayudantes utilizados por un controlador. En estos casos, los arrays del AppControler son combinados con los arrays de la clase hijo CakePHP combina las siguientes variables de AppController con los controladores de tu aplicacin:

$components $helpers $uses Por favor, recuerda realizar las llamadas a los callbacks de AppController desde los controladores de tu aplicacin para que todo funcione correctamente: Copy to Clipboard

1. 2. 3.

function beforeFilter(){ parent::beforeFilter(); }

Das könnte Ihnen auch gefallen