Está en la página 1de 17

2010

COMO EMPEZAR A COCINAR CON CAKE PHP


PARTE 1

David Antonio Gonzlez Blanchard Daviddagb2@hotmail.com

Contenido
Introduccin .................................................................................................................................. 3 Modelo de CakePHP....................................................................................................................... 4 Instalacin .................................................................................................................................... 5 La estructura completa .............................................................................................................. 6 Configuracin de Apache y mod_rewrite .............................................................................. 7 Crear una aplicacin fcil ............................................................................................................. 11 Como se usa un Modelo ............................................................................................................... 13 Como se usa unControlador ......................................................................................................... 14 Como se usa una Vista ................................................................................................................. 15 ESTA HISTORIA CONTINUARA .................................................................................................... 17

Introduccin
Cake php es un framework o marco de trabajo para php parecido a otro framework llamado rub on rails y tambin se parece a zend framework. Espero que con este pequeo tutorial aprenda por lo menos como utilizar este framework.

A m me cost bastante poder entender la estructura de este framework y cmo funcionaba, pero con lo que he estudiado logre crear una pequea pgina.

Como es un framework para php eso quiere decir que es utilizado para aplicaciones web, aunque su eslogan dice: CakePHP: the rapid development php framework, es un poco complicado si no se conoce su estructura.

Pienso que los frameworks son muy tiles pero son bastante complicados y el primer framework con el que me he topado ha sido cake php.

Modelo de CakePHP Cake php utiliza el modelo vista control que es un patrn de diseo bien estructurado y bastante conocido y utilizado. Ayuda a separar lgicamente el cdigo hacindolo reusable, mantenible y generalmente mejor que otros.

En trminos de Cake php, El modelo representa una base de datos, tabla o registro, as como sus relaciones con otras tablas o registros. Los modelos tienen las reglas de validacin de los datos. Estas se aplican cuando se insertan o actualizan datos.

Las vistas en cake estn representadas por los archivos view, los cuales son archivos de HTML, php o ctp. Las vistas son los formularios web que se presentan cuando se acceda a la aplicacin web.

Los controladores de Cake php manejan las peticiones del servidor. Toma las entradas del usuario (URL y datos de POST), aplica la lgica de negocios, utiliza los modelos para leer y escribir en base de datos y otras rutas, y manda la salida apropiada de datos con los archivos de vistas. Son como las reglas del negocio. En otras palabras con php normal sin el framework se trabaja as:
2.

1.

4. Cliente Pgina php

3.

Base de datos

Con cake php las cosas se hacen:

5. 8. Vista 7 3. 3. 1. Cliente 2. 4. Base de datos

Modelo 6.

Enrutador

Controlador

Instalacin
Bsicamente no se requiere mucho para instalar cake php solo se requiere de un servidor web como apache, puedes utilizar xamp para esto ya que trae interprete de php, mysql, filezilla, perl, etc. Luego de instalar apache hay que bajar el framework, generalmente viene en un paquete .rar o .tar.gz, etc. Viene comprimido. Puede bajarse de la pgina: http://www.cakephp.org. Se descomprime en la carpeta C:\xampp\htdocs o en la carpeta de los documentos de su servidor web. Sugiero crear la base de datos en my sql antes de iniciar con la configuracin. Pero esto es opcional.

Puede quedar algo as:

Como puede observarse dentro de la carpeta del framework se pueden observar las carpetas app, cake, plugins, vendor y los otros archivos. La estructura completa /app /config - Contiene archivos de configuracin de la base de datos, ACL, etc. /controllers - Los controladores van aqu /components - Los componentes van aqu /index.php - Le permite desplegar cake con /app como DocumentRoot /models - Los modelos van aqu /plugins - Los Plugins van aqu /tmp - Usado para cache y logs /vendors - Contiene las bibliotecas de terceros para esta aplicacin /views - Las vistas van aqu /elements - Los elementos (pequeas partes de vistas) van aqu /errors - Sus errores personalizados van aqu /helpers - Los helpers van aqu

/layouts - Los layout de la aplicacin van aqu /pages - Las vistas estticas van aqu. /webroot - El documentroot de su aplicacin /css /files /img /js /cake - Bibliotecas base de Cake. No edite ningn archivo aqu. index.php /vendors - Utilizado para las bibliotecas de terceros para todo el servidor. VERSION.txt - Aqu se ve la versin que se est utilizando.
Configuracin de Apache y mod_rewrite

Para que cake php funcione se debe de configurar lo siguiente en su servidor apache. Asegrese que la sobreescritura de .htaccess est permitida: en su httpd.conf, usted debe de tener una seccin que define otra seccin por cada carpeta en su sistema. En nuestro caso nos iremos a C:\xampp\apache\conf\httpd.conf Asegrese de que la carpeta correcta tiene asignado AllowOverride en All.

Si no est cmbielo. Tambin hay que cambiar nuestro directorio web por el de cake, esto har que todo nuestro sitio web sea una sola aplicacin cake php, hay otras formas de configurarlo pero por cuestiones de ejemplo solo lo haremos de esta manera. (Para mayor informacin consultar el manual oficial de la pgina de cake php en http://www.cakephp.org.)

Y tambin aqu:

Asegrese de que se est cargando mod_rewrite correctamente Debera de ver algo como LoadModule rewrite_module libexec/httpd/mod_rewrite.so y AddModule mod_rewrite.c en su httpd.conf. Despus de all guardamos, podemos hacer un respaldo del archivo C:\xampp\apache\conf\httpd.conf por cuestiones de respaldo pero esto es opcional. Ahora probamos abriendo nuestro navegador como firefox, internet Explorer, opera, google crome, etc. y en la barra de direcciones ponemos http://localhost/ y veremos que sale la pagina de cake php.

Nos aparecer algo as:

Ahora hay que configurar algunas cosas para que podamos empezar a crear nuestra aplicacin web.

Vamos a cambiar security.salt para que pueda funcionar. Nos vamos a app/config/core.php en la lnea 212 all hay una lnea que dice Configure::write('Security.salt','DYhG93b0qyJfIxfs2guVoUubWwvniR2G0Fga9 mi'); esto es por cuestiones de seguridad de sesiones, le cambiamos por otro valor, puede ser el que uno quiera pero debe de ser nico y puede tener hasta 40 caracteres yo le puse daviddagbx pero puede ser otra cosa.

Cuando esto est hecho, hay que configurar la base de datos, para ello nos vamos a app/config/database.php.default, lo copiamos y a esta copia le quitamos el .default y la llamamos: database.php

Abrimos este archivo. (Puedes utilizar programas como SharePoint, dreamweaver u otro editor web, yo utilizo expression web, aunque tambin est el bloc de notas). Dentro de esto observamos unas configuraciones que son para la conexin con la base de datos. All lo cambiamos con nuestros datos como por ejemplo: class DATABASE_CONFIG { var $default = array( 'driver' => 'mysql', //driver del servidor de datos 'persistent' => false, //esto lo dejamos as 'host' => 'localhost', //el host donde est ubicado 'login' => 'david', //el login del servidor 'password' => 'david', //la clave del servidor 'database' => 'restaurante', //el nombre de la base de datos 'prefix' => '', ); var $test = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'david', 'password' => 'david', 'database' => 'restaurante', 'prefix' => '', ); } Ahora podemos probar otra vez abriendo nuestro navegador y escribiendo http://localhost/ y vemos que todas las configuraciones estn bien.

Crear una aplicacin fcil


Para comenzar con este ejemplo sencillo empezamos creando una pgina principal en \app\views\pages, all creamos una archivo llamado home.ctp Este llevara lo siguiente:
<head> <style type="text/css"> .style3 { text-align: center; } .style4 { text-align: left; } .style5 { border-style: solid; border-width: 1px; text-align: center; color: #FFFFFF; background-color: #000000; }

.style6 { border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; } .style7 { border-top-style: solid; border-top-width: 1px; text-align: center; } .style8 { border-top-style: solid; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; text-align: center; } </style> </head> <div> <div class="style3"> <form action="" method="post"> <h3>SISTEMA DE GESTION DE RESTAURANTE</h3><hr /></form> <div class="style4"><br>AREAS DEL SISTEMA<br><br> <table class="style6"> <tbody> <tr><td class="style5" style="width: 266px">AREA DE RECEPCION</td> <td class="style5" style="width: 332px">AREA DE COCINA</td> <td class="style5" style="width: 355px">AREA DE CAJA</td></tr> <tr><td class="style8" style="width: 266px"><a href="http://localhost/clientes">CLIENTES</a></td> <td class="style8" style="width: 332px">SUMINISTROS</td> <td class="style8" style="width: 355px">PEDIDOS</td></tr> <tr><td class="style8" style="width: 266px">MESAS</td> <td class="style8" style="width: 332px">CONSUMSIONES</td> <td class="style8" style="width: 355px">FACTURACION</td></tr> <tr><td class="style7" style="width: 266px">RESERVACIONES</td> <td class="style7" style="width: 332px">&nbsp;</td> <td class="style7" style="width: 355px">EMPLEADOS</td></tr> </tbody></table><br></div></div>

Esto mostrara lo siguiente:

Por el momento solo cambiamos la presentacin de nuestra aplicacin web pero all puedes poner tu pgina de inicio. Como se usa un Modelo Primero hay que crear el modelo, el modelo conecta alguna tabla de la base de datos con el controlador y la vista. Nos vamos a la carpeta C:\xampp\htdocs\cake\app\models y all creamos un archivo llamado cliente.php

Los archivos de tipo modelo deben escribirse en singular y en minscula seguido de la extensin .php, pero dentro de la clase debe escribirse el mismo nombre pero la primera letra en mayscula.

Dentro de cliente. Php escribimos:


<?php class Cliente extends AppModel { var $name = 'Cliente'; } ?>

Con esto tenemos una conexin simple con la tabla cliente, este es nuestro modelo. Como se usa unControlador Ahora que ya tenemos nuestro modelo creamos el controlador, nos vamos a la carpeta C:\xampp\htdocs\cake\app\controllers y all creamos un archivo llamado clientes_controller.php

Los archivos controladores deben llamarse igual que el modelo, pero en plural y seguido con _controller, adems de ir en minscula y seguido de .php. Pero dentro de la clase debe escribirse con el mismo nombre en plural, la primera letra en mayscula y seguido de Controller.

Dentro del archivo clientes_controller.php escribimos:


<?php class ClientesController extends AppController { var $name = 'Clientes'; var $helpers = array('Html', 'Form' ); function index() { } function registrar() { if (!empty($this->params['form'])) { if ($this->Cliente->save($this->params['form'])) { // $this->flash('Su Registro Fue aceptado con exito.', '/clientes/index', 0); $this->redirect('/clientes/index'); } else { $this->flash('Hubo un problema con su registracion', '/clientes/register', 0); }

} } //fin de la funcin registrar } //fin de la clase ?>

Como se usa una Vista Ahora hay que crear la vista, para ello nos vamos a la carpeta C:\xampp\htdocs\cake\app\views y all creamos una carpeta llamada clientes, entramos a ella y creamos un archivo llamado registrar.ctp y un archivo index.php Las vistas deben llamarse como el nombre de la funcin del controlador seguido de .ctp que es como un scrip de php. Dentro de index.ctp escribimos: <b>Control de clientes</b> <form method="post" action="">
<br> <div style="height: 158px; width: 90px"> <br /> <label id="Label1">Modificar</label> <label id="Label1"><a href="/clientes/registrar">Agregar</a></label> <label id="Label1">Borrar</label> </div><br> </form>

Este ser nuestro index o la pagina principal que se mostrara cuando acecemos a clientes. Ahora dentro de registrar.ctp escribimos:
<head> <meta content="es-ni" http-equiv="Content-Language"> </head> <b>Control de clientes</b> <form method="post" action=""> <h2>Registro de Clientes del restaurante</h2> Nombres <br> <input name="nombres" style="width: 250px" type="text"> <br>Apellidos<br>&nbsp;<input name="apellidos" style="width: 251px" type="text"> &nbsp;<br> Direccion<br><input name="direccion" style="width: 400px" type="text"><br>

Telefono<br> <input name="telefono" style="width: 251px" type="text"><br>Edad<br> <input name="edad" style="width: 80px" type="text"><br> <input name="ingresar" style="width: 188px" type="submit" value="Ingresar"></form>

Con esto ya tenemos una vista para la funcin registrar. Ahora apuntamos a http://localhost/clientes y seleccionamos el enlace agregar, esto nos llevara a la pgina: http://localhost/clientes/registrar y nos aparecer este formulario de registro:

Introducimos los datos correspondientes y presionamos en ingresar, esto nos registrar un nuevo usuario en a base de datos y listo. Lo demostrado hasta aqu no explica las funciones y libreras y dems recursos que posee cake php esto fue solo un ejemplo sencillo de cmo se ve y se utiliza su estructura.

ESTA HISTORIA CONTINUARA

También podría gustarte