Upload
daviddagb2
View
2.158
Download
9
Embed Size (px)
Citation preview
Contenido Introducción .................................................................................................................................. 3
Modelo de CakePHP....................................................................................................................... 4
Instalación .................................................................................................................................... 5
La estructura completa .............................................................................................................. 6
Configuración de Apache y mod_rewrite .............................................................................. 7
Crear una aplicación fácil ............................................................................................................. 11
Como se usa un Modelo ............................................................................................................... 13
Como se usa unControlador ......................................................................................................... 14
Como se usa una Vista ................................................................................................................. 15
ESTA HISTORIA CONTINUARA… .................................................................................................... 17
Introducción
Cake php es un framework o marco de trabajo para php parecido a otro
framework llamado rubí on rails y también se parece a zend framework.
Espero que con este pequeño tutorial aprenda por lo menos como utilizar
este framework.
A mí me costó bastante poder entender la estructura de este framework y
cómo funcionaba, pero con lo que he estudiado logre crear una pequeña
página.
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 patrón de diseño bien
estructurado y bastante conocido y utilizado. Ayuda a separar lógicamente el
código haciéndolo reusable, mantenible y generalmente mejor que otros.
En términos 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 validación de los datos. Estas se aplican cuando se
insertan o actualizan datos.
Las vistas en cake están 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 aplicación web.
Los controladores de Cake php manejan las peticiones del servidor. Toma las entradas del usuario (URL y datos de POST), aplica la lógica 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í:
Página php
Cliente Base de datos
1. 2.
3. 4.
Con cake php las cosas se hacen:
Instalación
Básicamente 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 página: 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 configuración. Pero esto es opcional.
Cliente
Enrutador
Controlador
Modelo Base de datos
Vista
1.
2.
3.
4.
5.
6.
7
3.
8.
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 configuración 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 aplicación /views - Las vistas van aquí
/elements - Los elementos (pequeñas partes de vistas) van aquí /errors - Sus errores personalizados van aquí /helpers - Los helpers van aquí
/layouts - Los layout de la aplicación van aquí /pages - Las vistas estáticas van aquí.
/webroot - El documentroot de su aplicación /css /files /img /js
/cake - Bibliotecas base de Cake. No edite ningún archivo aquí. index.php /vendors - Utilizado para las bibliotecas de terceros para todo el servidor. VERSION.txt - Aquí se ve la versión que se está utilizando.
Configuración de Apache y mod_rewrite
Para que cake php funcione se debe de configurar lo siguiente en su servidor
apache.
Asegúrese que la sobreescritura de .htaccess está permitida: en su httpd.conf, usted debe de tener una sección que define otra sección por cada carpeta en su sistema. En nuestro caso nos iremos a C:\xampp\apache\conf\httpd.conf
Asegúrese de que la carpeta correcta tiene asignado AllowOverride en All.
Si no está cámbielo. También hay que cambiar nuestro directorio web por el
de cake, esto hará que todo nuestro sitio web sea una sola aplicación cake
php, hay otras formas de configurarlo pero por cuestiones de ejemplo solo lo
haremos de esta manera. (Para mayor información consultar el manual oficial
de la página de cake php en http://www.cakephp.org.)
Y también aquí:
Asegúrese de que se está cargando mod_rewrite correctamente Debería de ver algo como LoadModule rewrite_module libexec/httpd/mod_rewrite.so y AddModule mod_rewrite.c en su httpd.conf.
Después 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 aplicación web.
Vamos a cambiar security.salt para que pueda funcionar. Nos vamos a
app/config/core.php en la línea 212 allí hay una línea 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 también
está el bloc de notas). Dentro de esto observamos unas configuraciones que
son para la conexión 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 están bien.
Crear una aplicación fácil
Para comenzar con este ejemplo sencillo empezamos creando una página
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"> </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 presentación de nuestra aplicación web
pero allí puedes poner tu página 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 minúscula
seguido de la extensión .php, pero dentro de la clase debe escribirse el
mismo nombre pero la primera letra en mayúscula.
Dentro de cliente. Php escribimos:
<?php class Cliente extends AppModel { var $name = 'Cliente'; } ?>
Con esto tenemos una conexión 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”, además de ir en minúscula y seguido de
.php. Pero dentro de la clase debe escribirse con el mismo nombre en plural,
la primera letra en mayúscula 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 función 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 función 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> <input name="apellidos" style="width: 251px" type="text"> <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 función registrar. Ahora apuntamos a
http://localhost/clientes y seleccionamos el enlace agregar, esto nos llevara a
la página: 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 librerías y demás recursos que posee cake php
esto fue solo un ejemplo sencillo de cómo se ve y se utiliza su estructura.
ESTA HISTORIA CONTINUARA…