Cakephp: tu primer proyecto
Tu primer proyecto:
Para poner a prueba las bondades de Cake, vamos a construir una aplicación que maneje una cadena de Restaurants, los platos que sirven, y los clientes que los frecuentan. Por simplicidad del ejemplo vamos a asumir que cada restaurant sirve platos diferentes y cada cliente visita solo un restaurant.
Para nuestro ejemplo usaremos MySQL y la versión 1.2beta de CakePHP, como Cake soporta indistintamente PHP 4 y 5, podrás usar cualquiera de los dos. En particular, uso la versión 5.
Además CakePHP tiene los siguientes requerimientos, que deberas revisar antes de empezar a cocinar nuestra aplicación:
- Tener acceso a un servidor Apache, preferiblemente. Otros servidores como IIS también son soportados.
- Tener activado la reescritura de urls (en Apache es el módulo mod_rewrite)
- Tener acceso a un servidor de base de datos. Para el ejemplo usaremos MySQL, aunque Cake soporta la mayoría de los manejadores de bases de datos más usados en la actualidad, sin tener que escribir código adicional.
- Tener PHP.
Descarga el paquete de CakePHP 1.2 y descomprímelo en alguna carpeta accesible de tu servidor, asumiré que a la aplicación se le accederá directamente desde http:://localhost. Una vez hecho esto, CakePHP nos dará la bienvenida, además de decirnos que no hemos configurado aún la base de datos.
Antes de modificar el archivo que nos pide cake que cambiemos para configurar la base de datos, vamos primero a crear nuestras tablas, que nos servirán para guardar la información que usaremos en nuestra aplicación. utilizaremos únicamente 3 tablas: restarants, platos, y clientes:
Lo primero a notar de aquí son las convenciones utilizadas para el nombramiento de tablas y de campos: Los nombres de tabla van en plural, las referencias a otras tablas se colocan como nombre de tabla en sigular, seguido de _id. Las convenciones de CakePHP, están bien definidas en el manual.
Ahora sí, podemos ir a editar el archivo /app/config/database.php.default. Primero que nada, cámbiale el nombre a /app/config/database.php luego modifica la información que contiene. Personalízalo de acuerdo al nombre de base de datos que hayas escogido, usuario y contraseña del manejador. Debe verse parecido a este:
Finalmente ya Cake está configurado para empezar a codificar nuestra aplicación. Empecemos por la parte divertida: ¿Por qué escribir código cuando Cake lo puede hacer por ti?. Así que abre tu consola y haz cd a la carpeta app del directorio en que tienes instalada la carpeta de la aplicación. Desde allí ejecuta el siguiente comando:
../cake/console/cake bake all
Esto ejecutara la cónsola de generación automática de código de CakePHP. De seguido te presenta una lista con los modelos que puedes generar. Escoje la opción 1 para generar todo el código referente a “Cliente”
Possible Models based on your current database:
1. Cliente
2. Plato
3. Restaurant
Enter a number from the list above, or type in the name of another model.
> 1
Puedes responder ciegamente a las preguntas que te haga la cónsola, para este ejemplo no usuaremos el suite de pruebas. Esta simple acción habrá generado el modelo, el controlador, y las vistas de cliente. Repite el paso anterior para las opciones 2 y 3. Si no usas el último parámetro “all”, tendrás más control sobre el código que se generará… pero de esta manera es más rápido.
¡Eso es todo! Ahora puedes añadir, listar, ver, editar y eliminar tanto los restaurants, como los platos y los clientes:
Podrás notar la forma que tienen los URL de cake, puesto que son bastante explicativos:
http://localhost/restaurants/
http://localhost/restarants/add/
http://localhost/platos/edit/1/
http://localhost/clientes/view/2/
http://localhost/platos/delete/3/
Simplemente siguen la forma /nombre_de_controlador/accion/primer_parametro
En la siguiente página discutiremos los métodos de validación de forms de CakePHP.
Hola José Lorenzo,
¡Felicidades por el post! ¿Por qué crees que la versión 1.2 es mejor que la 1.1? No tengo mucha experiencia con ninguna de las dos versiones. Un saludo
Octubre 26 2008, justo a 8:39 amEjecuto cake bake all
Me sale el error: Error al iniciar la aplicaciòn porque no se encontrò php_mbstring.dll. La reinstalaciòn de la aplicaciòn puede solucionar el problema.
Ya revisé el php.ini y aparece que la extensiòn si està siendo leida.
Octubre 26 2008, justo a 11:52 amLa versión 1.2 incluye innumerables mejoras con respecto a la 1.1. Una de mis favoritas es el FormHelper, que hará la creacíon de los form tan fácil como una línea. Además tiene clases para manejo de WebServices, XML, los Behaviors que son muy útiles… En fin, no vale la pena iniciar con la 1.1…
De windows se muy poco… pero deberías seguir el consejo… reistala de nuevo php, op mejor aún. Kubuntu
Octubre 26 2008, justo a 6:38 pm