0% encontró este documento útil (0 votos)
705 vistas20 páginas

FrameWork Cake PHP

Este documento describe el framework CakePHP para el desarrollo de aplicaciones web en PHP. Explica las características clave de CakePHP como su arquitectura MVC, componentes, comportamientos y helpers. También describe la estructura y disposición de archivos típicos de CakePHP así como los requisitos y el proceso general de una petición.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
705 vistas20 páginas

FrameWork Cake PHP

Este documento describe el framework CakePHP para el desarrollo de aplicaciones web en PHP. Explica las características clave de CakePHP como su arquitectura MVC, componentes, comportamientos y helpers. También describe la estructura y disposición de archivos típicos de CakePHP así como los requisitos y el proceso general de una petición.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 20

Universidad centroamericana

Facultad de ciencia, tecnologa y ambiente

IMPLEMENTACION DE APLICACIONES ORIENTADO A OBJETOS


NOMBRES: David Antonio Gonzlez Blanchard Aura Lila Gutirrez Tejada Francys Jessenia Gmez Snchez ngel Antonio Gonzlez Oporta Ramces Exequiel Cabezas

PROFESOR: Armando Lpez

INGENIERIA EN SISTEMAS Y TECNOLOGIAS DE LA INFORMACION

FrameWork CakePHP
Introduccin
CakePHP es un framework (entorno de trabajo) libre y de cdigo abierto para el desarrollo en PHP. Es una estructura de libreras, clases y una infraestructura runtime (en tiempo de ejecucin) para programadores de aplicaciones web originalmente inspirado en el framework Ruby On Rails.Su principal meta es permitir su trabajo de manera estructurada y rpida, sin prdida de flexibilidad.

Caractersticas
CakePHP tiene varias caractersticas que lo hacen una gran opcin como un framework para desarrollo de aplicaciones rpidas y con el menor costo de molestia.

Comunidad activa y amigable Licencia flexible Compatibilidad con PHP4 y PHP5 CRUD integrado para la interaccin con la base de datos y las preguntas simplificadas Scaffolding Arquitectura Modelo Vista Controlador (MVC) Despachador de peticiones con buena vista, URL personalizadas Validacin incorporada Plantillas rpidas y flexibles (Sintaxis PHP, con Helpers) Helpers en Vistas para AJAX, Java script, Formularios HTML y mas Seguridad, Sesiones y Componentes para Manejo de Peticiones Lista de Control y Acceso flexible Desinfeccin de datos Cache flexible en Vistas Trabaja desde cualquier subdirectorio web del sitio, con poca o ninguna configuracin de Apache envuelta

Historia de CakePHP
En 2005, Michal Tatarynowicz escribi una mnima versin de un Framework Rpido para Aplicaciones en PHP. El encontr que ese fue el principio de un muy buen framework. Michal publico el framework bajo la licencia MIT, mezclando

Cake, y abrindose a una comunidad de desarrolladores, quienes ahora mantienen Cake bajo el nombre CakePHP.

Modelo de CakePHP Cake PHP utiliza el modelo vista-control es un patrn para diseo de software que ayuda a separar lgicamente el cdigo hacindolo reusable, mantenible y generalmente mejor. La entrada del usuario, el modelado del mundo externo, y la retroalimentacin visual para el usuario son separados y dirigidos por los objetos modelo, vista y controlador. En trminos de Cake, El modelo (Modelo) representa una base de datos, tabla o registro, as como sus relaciones con otras tablas o registros. Los Modelos (Models) contienen las reglas para la validacin de datos. Estas reglas son aplicadas cuando en el modelo (model) se insertan o actualizan datos. Las vistas en cake estn representadas por los archivos view, los cuales son archivos de HTML con cdigo PHP incluido. Los controladores (controllers) de Cake manejan las peticiones del servidor. Toma las entradas del usuario (URL y datos de POST), aplica la lgica de negocios, utiliza los modelos (models) para leer y escribir en base de datos y otras rutas, y manda la salida apropiada de datos con los archivos de vistas (view). Para hacer tan fcil como sea posible la organizacin de tu aplicacin, Cake usa esto no solo para manejar como interactan los objetos dentro de la aplicacin, si no tambin como son almacenados los archivos.

Descripcin de la disposicin de archivos de Cake


Cuando se desempaqueta Cake en el servidor se encontraran 3 carpetas principales: app cake vendors

La carpeta cake es el lugar para las bibliotecas base de Cake La carpeta app es el lugar donde estarn las carpetas y archivos especficos de su aplicacin. La separacin entre la carpeta cake y la carpeta app hace posible para usted tener

muchas carpetas app compartiendo un solo conjunto de bibliotecas de Cake. La carpeta vendors se utiliza para para guardar en ella bibliotecas de terceros.

Requerimientos
Para usar CakePHP usted debe primero tener un servidor que tenga las libreras y programas para correr CakePHP. Estos son los requerimientos para la puesta en marcha del servidor para corre CakePHP:
1. Un servidor HTTP (como Apache) con lo siguiente habilitado: sesiones,

mod_rewrite (no absolutamente necesario, pero preferido).

2. PHP 4.3.2 o superior. Si CakePHP trabaja bien en PHP 4 o 5. 3. Un motor de base de datos (ahora, hay soporte para MySQL, PostgreSQL

y un envoltorio para ADODB)

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.

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. 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.

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.

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 les 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.

Una peticin tpica de CakePHP

El 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. 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.

Desarrollando con CakePHP Configuracin


Despus de instalar CakePHP, crear una aplicacin web bsica solo requiere aplicar la configuracin de una base de datos. Existen, otras configuraciones opcionales, que puedes realizar con el objetivo de aprovechar las ventajas de la arquitectura flexible de CakePHP. Se pueden agregar fcilmente elementos al ncleo de CakePHP, configurar URL personalizadas y definir inflexiones.

Configuracin de Base de Datos


CakePHP espera que los detalles de configuracin de la base de datos estn en app/config/database.php. Un ejemplo de configuracin puede encontrarse en el archivo app/config/database.php.default. Esta configuracin debera verse como:
var $default = array('driver' 'persistent' 'host' 'login' 'password' 'database' 'prefix' => => => => => => => 'mysql', false, 'localhost', 'cakephpuser', 'c4k3roxx!', 'mi_proyecto', '');

1. var $default = array('driver' => 'mysql',

2. 'persistent' => false, 3. 'host' => 'localhost', 4. 'login' => 'cakephpuser', 5. 'password' => 'c4k3roxx!', 6. 'database' => 'mi_proyecto', 7. 'prefix' => '');

8. Clave driver Valor El nombre del controlador de base de datos que se desea utilizar. Ejemplo: mysql, postgres, sqlite, pear-nombrededriver, adodb-nombrededriver, mssql, oracle, odbc. Si se debe usar o no una conexin persistente a la base de datos. El nombre de servidor de la base de datos (o direccin IP). El nombre de usuario para la cuenta. La contrasea para la cuenta. Nombre de la base de datos a usar para la conexin El texto que prefija cada nombre de tabla en la base de datos. til si se comparte la base de datos con varias aplicaciones. Dejar vaco si no se desea ninguno. El puerto TCP o socket Unix a usarse para la conexin con el servidor de base de datos. Indica la codificacin de caracteres a usar para enviar las sentencias SQL al servidor. Usado en la configuracin de PostgreSQL para especificar el esquema a utilizar.

persistent host login password database prefix (opcional) port (opcional) encoding schema

Configuracin del Core


La configuracin de la aplicacin en CakePHP se encuentra en /app/config/core.php. Este archivo es una coleccin de definiciones de

variables Configure y definiciones de constantes que determinan como ha de comportarse la aplicacin.

La Clase de Configuracin
La nueva clase Configure de CakePHP puede ser utilizada para guardar y recuperar valores especficos de la aplicacin o de tiempo de ejecucin. Esta clase permite almacenar cualquier cosa en ella, para luego usarla en cualquier lugar de tu cdigo: una tentacin segura para romper el patrn MVC con el cual fue diseado CakePHP, as que, hay te ser cuidadoso con esta configuracin. Esta clase acta como un singletn, y sus mtodos pueden ser llamados desde cualquier lugar en tu aplicacin, en un contexto esttico

Mtodos de la Clase Configure


Write: Utiliza write() para almacenar datos en la configuracin de la aplicacin
write(string $clave, mixed $valor) Configure::write('Empresa.lema',' restaurante Manager evolution');

Read: Se usa para leer datos de configuracin de la aplicacin. Por defecto

devuelve el importante valor de "debug" (nivel de depuracin). Si se especifica una clave, los datos correspondientes son devueltos. Usando nuestros anteriores ejemplos de write(), podemos leer esos datos de vuelta. read(string $clave = 'debug') Configure::read('Empresa.lema'); //devuelve: restaurante manager evolution'

Delete: Se usa para borrar informacin de configuracin de la aplicacin.


delete(string $clave) Configure::delete('Empresa.nombre');

Load: Usa este mtodo para cargar informacin de configuracin desde una
archivo especfico. load(string $path)

Configure::load('mensajes');

Versin: Devuelve la versin de CakePHP de la aplicacin actual.


version()

Variables de Configuracin Principales de CakePHP


La clase Configure se usa para manejar un conjunto de variables de configuracin de CakePHP. Estas variables pueden ser encontradas en app/config/core.php.
Variable de Configuracin debug Descripcin
Cambia el nivel de depuracin de cake 0 = Modo producin. No produce ninguna salida. 1 = Muestra los error y warnings. 2 = Muestra los error, warnings, y consultas SQL 3 = Muestra los error, warnings, consultas SQL, y volcado completo del Controller.

App.baseUrl Routing.admin

Descomenta esta definicin si no deseas utilizar el mod_rewrite de Apache. No te olvides de eliminar los archivos .htaccess tambin. Descomenta esta definicin si deseas utilizar las rutas admin de CakePHP. Asigna la variable al nombre de la ruta que te gustara utilizar. Ms adelante se explicar en detalle. Cuando se asigna true, el cache se deshabilita para toda la aplicacin. Si se asigna true, habilita el cache de las vistas. Tambin es necesario activar el cache en los controllers, pero esta variable habilita la deteccin de dichas configuraciones. Le indica a CakePHP qu mecanismo de almacenamiento de sesiones se debe utilizar php = Utiliza el almacenamiento por defecto de php cake = Guarda los datos de sesin en /app/tmp database = Guarda los datos en una tabla de la base de datos. Asegrate de cargar el archivo SQL ubicado en /app/config/sql/sessions.sql.

Cache.disable Cache.check

Session.save

Session.table Session.database Session.cookie

El nombre de la tabla (sin incluir el prefijo) que guarda los datos de la sesin. El nombre de la base de datos que guarda los datos de sesin. El nombre del cookie utilizado para hacer seguimiento de las sesiones.

Session.timeout Session.start Session.checkAgent Security.level

El tiempo base de validez de la sesin en segundos. El valor real depende de la variable Security.level Inicia automticamente la sesin cuando se asigna true. Cuando se asigna false, Las sesiones de CakePHP no se asegurarn de que el "user agent" del usuario no cambie entre peticiones. El nivel de seguridad de CakePHP. El tiempo de validez de la sesin definido en 'Session.timeout' se multiplica de acuerdo a lo siguiente. Valores vlidos: 'high' = x 10 'medium' = x 100 'low' = x 300

Security.salt Acl.classname, Acl.database

Una palabra aleatoria usada en sumas de seguridad. Variables usadas para las Listas de Control de Acceso de CakePHP. Lee el captulo de listas de control de acceso para ms informacin.

La Clase App
Cargar clases adicionales se ha vuelto mucho ms sencillo con CakePHP. En versiones anteriores existan funciones diferentes para cargar una clase dependiendo de su tipo. Estas funciones han sido reemplazadas, ahora toda la carga de clases debera hacerse a travs de el mtodo App::import(). ste mtodo te asegura que una clase ha sido cargada slo una vez, que las clases que extiende se hayan cargado apropiadamente, y resuelve las rutas de ubicacin automticamente en la gran mayora de los casos.

App::import()

A primera vista App::import parece complejo, sin embargo, en la mayora de los casos es suficiente con tan slo dos parmetros.
App::import($type, $name, $parent, $search, $file, $return);

App::import('Core', 'Sanitize'); Lo anterior har que la clase Sanitize est disponible para su uso. Con app::import() se pueden importar modelos, componentes, comportamientos, ayudantes y desde plugins. Ejemplo, Para cargar vendors/geshi.php se utilizara:

App::import('Vendor', 'geshi');

Configuracin de Rutas
El enrutamanieto permite hacer una relacin entre URLs y acciones de los controller. CakePHP viene configurado con un conjunto de rutas por defecto. Estas rutas te llevarn bastante lejos en cualquier aplicacin. Puedes acceder a una accin directamente desde el URL colocando su nombre en la peticin. Tambin puedes pasar parmetros a las acciones de tus controladores usando el URL. URL: /monos/saltar Dirige a: MonosController->saltar(); URL: /tareas/ver/45 Dirige a: TareasController->ver(45);

Inflexiones Propias
Las convenciones de nomenclatura de CakePHP pueden ser muy buenas. Nombras la tabla de base de datos "usuarios", tu modelo "Usuario", tu controlador "UsuariosController" y todo funcionar automticamente. La forma en que CakePHP sabe como atar unas cosas a otras es a travs de las inflexiones de palabras entre formas en singular y plural. Hay ocasiones, sobre todo para usuarios de habla hispana, en que encontrars situaciones donde el inflector de CakePHP no funcione como lo esperas. Si CakePHP no es capaz de reconocer tu Reloj o Ciudad, editar el archivo de inflexiones propias es la manera de indicarle a CakePHP que existen otros casos especiales. Este archivo se encuentra en /app/config/inflections.php.
Variable inflections.php $pluralRules de Descripcin Este arreglo contienen las expresiones regulares para pluralizar los casos especiales. Las claves del arreglo son los patrones y los valores los reemplazos. Un arreglo que contiene palabras que no han de ser modificadas para obtener su plural, como la palabra gente o dinero. Un arreglo que contiene palabras y su respectivo plural. Las claves de este arreglo contienen la forma singular y los valores la forma plural. Este arreglo debe ser utilizado para colocar palabras que no sigan las reglas

$uninflectedPlural $irregularPlural

definidas en $pluralRules. $singularRules $uninflectedSingular $irregularSingular Igual que $pluralRules, solo que contiene las reglas para singularizar palabras. Igual que $uninflectedPlural, solo que este arreglo contiene las palabras que no tienen singular. Por defecto es igual que $uninflectedPlural. Igual que $irregularPlural, solo que con palabras en forma singular.

Controladores
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). Los controladores pueden tener cualquier cantidad de mtodos a los que normalmente se les llama acciones.

El 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. 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 controladores de tu aplicacin. CakePHP combina las siguientes controladores de tu aplicacin: $components $helpers $uses variables de AppController con los

El Pages Controller
El ncleo de CakePHP viene con un controlador por defecto llamado the Pages Controller (el Controlador de Pginas) (cake/libs/controller/pages_controller.php). La pgina de inicio que ves luego de la instalacin, es generada utilizando este controlador.

Por ejemplo: S se crea un archivo de vista app/views/pages/about_us.ctp se puede accesar a l utilizando la url http://example.com/pages/about_us

Atributos del Controlador


$name Los usuarios de PHP4 deberan empezar la definicin de sus controladores con el atributo $name. Este atributo debera ser asignado con el nombre del controlador. Usualmente este es simplemente el plural del modelo principal al que el controlador est asociado. Esto previene algunos problemas de distincin de maysculas que tiene PHP4 para los nombres de las clases. Ejemplo:
<?php class RecetasController extends AppController { var $name = 'Recetas';}?>

$components, $helpers y $uses Los siguientes atributos ms comunmente utilizados del controlador indican a CakePHP qu ayudantes (helpers), componentes (components), y modelos (models) utilizars en conjuncin con el controlador actual. Atributos Relacionados con la Pgina: "$layout" y "$pageTitle" Existen unos pocos atributos en los controladores de CakePHP que te dan control sobre cmo se colocan tus vistas (views) dentro del diseo (layout). El Atributo de Parmetros ("$params") Los parmetros del controlador estn disponibles en $this->params en tu controlador de CakePHP. Esta variables es usada para proporcionar acceso a la informacin sobre la peticin actual. El uso ms comn de $this->params es obtener acceso a informacin que ha sido entregada al controlador a travs de las operaciones POST o GET. form $this->params['form'] Cualquier dato POST de cualquier formulario se almacena aqu, incluyendo informacin tambin hallada en $_FILES. Admin $this->params['admin']

Contiene el valor 1 si la accin (action) actual fue invocada mediante enrutamiento "admin". bare $this->params['bare'] Almacena un 1 si el diseo (layout) actual est vaco; 0 si no. isAjax $this->params['ajax'] Almacena un 1 si la peticin actual es una llamada ajax; 0 si no. Esta variables slo se establece si el componente RequestHandler es usado en el controlador. controller $this->params['controller'] Almacena el nombre del controlador actual que est sirviendo la peticin. Por ejemplo, si fue pedida la URL /posts/view/1, $this->params['controller'] ser igual a "posts". Action Pass url data prefix named persistModel

Mtodos del Controlador Interactuando con Vistas


Set : El mtodo set() es la principal manera de enviar datos desde tu controlador a tu vista (view). Una vez que has utilizado set(), la variable puede ser accedida en tu vista.
set(string $variable, mixed $valor)

render: El mtodo render() es llamado automticamente al final de cada accin de controlador pedida. Este mtodo lleva a cabo toda la lgica de la vista (usando los datos que has proporcionado con el mtodo set()), coloca la vista (view) dentro de su diseo (layout) y lo sirve de vuelta al usuario final. render(string $action, string $layout, string $file)

Control de Flujo

Redirect: El mtodo de control de flujo que ms frecuentemente utilizars es redirect(). Este mtodo toma su primer parmetro en forma de URL relativa de CakePHP. Por ejemplo, cuando un usuario ha hecho un pedido satisfactoriamente, probablemente desears redirigirle a una ventana de recibo. redirect(string $url, integer $status, boolean $exit) flash: Igualmente, el mtodo flash() es usado para redirigir un usuario a una nueva pgina tras una operacin. El mtodo flash() es diferente en cuanto que muestra un mensaje antes de enviar al usuario a otra URL. flash(string $message, string $url, integer $pause) Retrollamadas o Callback: Los controladores de CakePHP vienen con retrollamas (callbacks) empotradas que puedes usar para insertar lgica justo antes o despus de que las acciones del controlador sean llevadas a cabo.

beforeFilter() beforeRender() afterFilter() afterRender()

postConditions: Usa este mtodo para convertir un conjunto de datos de


modelo recibidor mediante POST (de inputs compatibles con HtmlHelper) en un conjunto de condiciones de bsqueda para un modelo. Pagnate: Este mtodo es usado para paginar resultados cargados por tus modelos. Puedes especificar tamao de pginas, condiciones de bsqueda del modelo y ms. Mira la seccin paginacin para ms detalles sobre cmo usar paginate. requestAction: Esta funcin llama a una accin de un controlador de cualquier lugar y devuelve los datos de la accin. La direccin $url pasada es una URL relativa de CakePHP (/nombrecontrolador/nombreaccion/parametros). Para pasar datos extras a la accin del controladores receptor, adelos al array $options. requestAction(string $url, array $opciones) loadModel: La funcin loadModel es til cuando se necesita usar un modelo que no es propiamente el modelo por defecto del controlador o uno de sus modelos asociados. loadModel(string $modelClass, mixed $id)

Componentes
Los componentes son paquetes de lgica que son compartidos entre los controladores. Si tiene ganas de copiar y pegar cdigo de un controlador a otro, debera antes considerar agrupar algunas funcionalidades en un componente. CakePHP incluye un conjunto fantstico de componentes listos para usar para conseguir ayuda con:

Seguridad Sesiones Lista de control de acceso (ACL) Emails Cookies Autenticacin Manejo de pedidos (Requests)

Creando Componentes a medida Supongamos que nuestra aplicacin online necesita efectuar una compleja operacin matemtica en muchas partes de la aplicacin. Creariamos un componente que albergara esa lgica compartida para poder ser usada en diferentes controladores El primer paso es crear una nueva clase y fichero de componente. Crea el fichero en /app/controllers/components/math.php. Aadiendo Componentes a tus Controladores Una vez finalizado nuestro componente, podemos usarlo en los controladores de la aplicacin aadiendo su nombre (excepto la parte "Component" al array $components del controlador. Acceso a clases MVC dentro de componentes Para acceder a la instancia del controlador desde tu recien creado componente, necesitars implementar el mtodo initialize() o el startup(). Estos mtodos especiales llevan una referencia al controlador como primer parmetro y son llamados automticamente. El mtodo initialize() es llamado antes del mtodo beforeFilter(), y el mtodo startup() despus del mtodo beforeFilter. Si por algn

motivo no deseas que el mtodo startup() sea llamado cuando el controlador est inicializando cosas, dale el valor true a la variable $disableStartup. Si deseas insertar algn cdigo de lgica antes de que el controlador beforeFilter() sea llamado, necesitars usar el mtodo initialize() del componente. Usando Componentes en tu Componente A veces uno de tus componentes puede depender de otro. Si las funcionalidades que estos componentes proveen no estn relacionados, excepto por su dependencia el uno del otro, entonces no querrs ponerlos dentro de un solo componente. En cambio puedes hacer que tu componente sea un "Padre" e indicarle con el array $components la lista de sus "Hijos". Los componentes padres se cargan antes que sus componentes hijos, y cada componente hijo tiene acceso a su padre. Ejemplo: <?php class PadreComponent extends Object { var $name = "Padre"; var $components = array( "Hijo" ); function initialize(&$controller) { $this->Hijo->foo(); } function bar() { // ...} }

Modelos
Un Modelo representa tu modelo de datos y, en programacin orientada a objetos, es un objeto que representa una "cosa", como un coche, una persona, o una casa. Un blog, por ejemplo, puede contener varios artculos (posts) y cada artculo puede contener varios comentarios. Los objetos Blog, Artculo (Post) y Comentario son ejemplos de modelos, cada uno asociado con el otro.
<?php class Ingredient extends AppModel { var $name = 'Ingredient'; } ?>

Simplemente con esta declaracin, se le otorga al modelo Ingredient toda la funcionalidad que necesitars para crear consultas junto con guardado y borrado de datos. Estos mtodos mgicos provienen del modelo de herencia de CakePHP. El modelo Ingredient extiende el modelo de aplicacinm AppModel, el cual extiende la clase Model, interna de CakePHP. Es esta clase Model interna la que otorga la funcionalidad a nuestro modelo pesonalizado, Ingredient. La clase intermedia AppModel est vaca y reside por defecto dentro de la carpeta /cake/. Redefinir AppModel te permitir definir funcionalidad que debera estar disponible a todos los modelos dentro de tu aplicacin. Para hacer eso, necesitas crear tu propio fichero app_model.php que reside en la raz de la carpeta /app/. Creando un proyecto utilizando Bake, Bake generar automticamente este fichero por ti. Crea tu fichero modelo en PHP en el directorio /app/models/ o en un subdirectorio de /app/models/. CakePHP lo encontrar en cualquier lugar en el directorio. Por convencin, debera tener el mismo nombre que la clase; para este ejemplo, ingredient.php. CakePHP crear dinamicamente un objeto modelo por ti si no puede encontrar un archivo correspondiente en /app/models. Esto tambin significa que si, accidentalmente, nombras tu archivo de manera errnea (p.ej. Ingredient.php o ingredients.php) CakePHP utilizar AppModel en lugar de tu archivo de modelo con nombre incorrecto. Si ests tratando de utilizar un mtodo de un modelo personalizado y ests obteniendo errores SQL, normalmente es porque CakePHP no puede encontrar tu modelo. La propiedad $name es necesaria para PHP4 pero opcional para PHP5.

Creando Tablas de Bases de Datos


A pesar de que CakePHP puede tener orgenes de datos (datasources) que no son manejadas por sistemas de gestin de bases de datos, la mayora de las veces lo son. CakePHP est diseado para ser agnstico y funcionar con MySQL, MSSQL, Oracle, PostgreSQL y otros. Puedes crear tus tablas de base de datos como lo haras normalmente. Cuando creas tus clases del Modelo, automticamente se mapean a las tablas que has creado. Los nombres de las tablas son, por convencin, en minsculas y en plural, con las palabras de los nombres de tablas de varias palabras separadas por guiones de subrayado (_). Por ejemplo, un nombre de Modelo de Ingredient espera el nombre de tabla ingredients. un nombre de Modelo de EventRegistration debera esperar un nombre de tabla event_registrations. CakePHP inspeccionar tus tablas para determinar el tipo de dato de cada campo y utiliza esta informacin apra

automatizar varias caractersticas como la salida de campos de formulario en la vista.

Conclusion
Cake php es un Framework de cdigo abierto el cual es muy flexible a los cambios y muy til como herramientas para disear aplicaciones web. Se emplea mediate el lenguaje php ya sea el 4 o php 5. Necesita de un servidor como iss o apache para implementar las aplicaciones. Es muy recomendable utilizarlo por su facilidad de aprendizaje aunque lleva su cantidad de esfuerzo y dedicacin. Las posibilidades que ofrece son variadas y muy eficientes.

También podría gustarte