29 Mar 2006

Aplicación de 5 minutos con Cake

Cake es un entorno de desarrollo rápido para PHP basado en el modelo MVC (Si, como Rails) que es muy fácil de usar y muy potente para desarrollar aplicaciones con pocas lineas de código. A continuación te voy a enseñar como instalarlo y usar sus características de scaffolding para crear un sencillo y muy básico gestionador de bookmarks.

1. Instalando Cake
nota
Antes que nada, necesitas tener un entorno de desarrollo adecuado en tu maquina para correr PHP y MySQL. Existen paquetes completos, listos para instalar como Apache2triad y xampp para windows y Mamp para Mac. Si no sabes qué es todo ésto, igual es conveniente investigar algo antes de seguir leyendo.

Si ya tienes Apache y PHP, instalar Cake no tiene ninguna gracia, solo ve y descarga la última versión estable desde CakeForge y descomprime el archivo en una carpeta visible desde tu servidor web. Para este ejemplo vamos a llamar a esa carpeta cake.

2. Crea la tabla en tu base de datos

Usa la siguiente estructura para crear una tabla en tu base de datos:

CREATE TABLE bookmarks (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
url VARCHAR(255) NOT NULL,
created DATETIME,
modified DATETIME,
PRIMARY KEY (id) 
);
3. Configura la conexion a tu base de datos

Ahora ve al directorio app/config y busca un fichero llamado database.php.default y renómbralo a sólo database.php. Ábrelo para editarlo y cambia las los valores de host,login,password y databasepara que se ajusten a tu configuración. Despues guarda los cambios.

class DATABASE_CONFIG
{
    var $test    =  array('driver'    => 'mysql',
                         'connect'  => 'mysql_connect',
                         'host'     => 'localhost',
                         'login'    => 'user',
                         'password' => 'password',
                         'database' => 'project_name',
                         'prefix'    => '');

    var $test    =  array('driver'    => 'mysql',
                         'connect'  => 'mysql_connect',
                         'host'     => 'localhost',
                         'login'    => 'user',
                         'password' => 'password',
                         'database' => 'project_name-test',
                         'prefix'    => '');
}

Para la mayoría de las aplicaciones, esta parte será la unica vez que edites un archivo de configuración.

4. Crea un modelo

Dentro de la carpeta /app/models crea un nuevo fichero llamado bookmark.php. Copia y pega en ese archivo el código que está a continuación y guarda.

<?php
class Bookmark extends AppModel
{
	var $name = 'Bookmark';
}
?>
5. Crea un controlador

Dentro de la carpeta /app/controllers crea un nuevo fichero llamado bookmarks_controller.php. Copia y pega en ese archivo el código que está a continuación y guarda.

<?php
class BookmarksController extends AppController
{
	var $name = 'Bookmarks';
	var $scaffold;
}
?>
6. ¡Es todo!

Ahora dirige tu navegador a http://localhost/cake/bookmarks y mira como cake ha creado una miniaplicación 100% usable para tí.

index.gif

new_bookmark.gif

index_2.gif

Disclaimer: Este tutorial ha sido traducido y adaptado de éste otro por Graham Bird

Acabas de leer «Aplicación de 5 minutos con Cake», un post escrito por sosa con insomnio archivado en la categoría Tutoriales.

Diego #1 | Marzo 29, 2006 10:15 AM Diego dice:

Buen trabajo :)

Es bueno aclarar que todo esto es posible gracias a que seguiste las convenciones al nombrar las clases y archivos.

Teniendo la tabla bookmarks (plural) uno crea el modelo Bookmark (en singular) y el controlador BookmarksController, luego los views reciben el nombre que tienen los metodos dentro de la clase, por ejemplo add, edit y delete, siendo index el que se muestra por defecto si no se llama a ninguno.

Finalmente las URLs se forman de la manera: /controlador/metodo/parametro1/parametro2

Por ejemplo: /bookmarks/edit/1

Axel Valdez #2 | Marzo 29, 2006 10:22 AM Axel Valdez dice:

Bro, ¿que te pasa? You’re on fire!!!!

Cristian/Ocampo #3 | Marzo 29, 2006 11:08 AM Cristian/Ocampo dice:
5. Crea un controlador

Dentro de la carpeta /app/conttroller crea un nuevo…

El directorio debe ser /app/controllers

Excelente el tutorial

sosa #4 | Marzo 29, 2006 11:51 AM sosa dice:

Hey, Gracias Cristian por la aclaración, ya está coprregido.

Jhonatan #5 | Abril 19, 2006 01:52 PM Jhonatan dice:

Hey tu sosa porque carajos kitaste eso de los morlacos no ves k te sirvio de mucho muchos individuos entraron y te apuesto k si lo reinicias muchos mas entraran te lo digo pq eso de la coca esta loko y mas con los premios bueno tu sabes y ahora como tu lo dijiste podrias hacer un foro wey y todos podriamos compartir las tapas(morlacos) okkk este es mi msn jhonhdez_n2@hotmail.com ah y este otro pero casi no entro y para presumir este es inhackeable jeje——-> jhonatanhdez@hotmail.com

Josepzin #6 | Mayo 2, 2006 02:23 AM Josepzin dice:

La verdad es que no me entero muy bien de que va esto, pero parece interesante.

antoni vidal #7 | Mayo 6, 2006 11:27 AM antoni vidal dice:

Pues a mi no me funciona, q sera lo q hago mal?

A ver, corro el cake en Windows cn Xammp instaldo (PHP5 i MySQL). Descomprimi Cake en la carpeta Httpdocs (localhost). Cree los codigos, la DB i configure. Index.php en directorio raiz de Cake me indica que la conexion a la BD esta bien realizada.

AL abrir http://localhost/cake/bookmarks me da error 404 i al testear los arxivos creados por separado me dice q no encuentra las clases declaradas despues de extends AppController i AppModel.

Cual es el problema? No tengo los directorios bien asignados?

Gracias

emi #8 | Septiembre 11, 2006 04:22 PM emi dice:

hola!!
si me pueden ayudar por favor?!!, se los agradezco de antemano; bueno
sigo los pasos que se indican, cuando llego al último paso al punto 6, me sale este mensaje:(si es http://localhost/cake manda el mensaje siguiente)

Warning: require(config\core.php) [function.require]: failed to open stream: No such file or directory in C:\Archivos de programa\xampp\htdocs\cake\index.php on line 55

Fatal error: require() [function.require]: Failed opening required ‘config\core.php’ (include_path=’.;C:\Archivos de programa\xampp\php\pear\;C:\Archivos de programa\xampp\htdocs\cake;C:\Archivos de programa\xampp\htdocs\cake\app') in C:\Archivos de programa\xampp\htdocs\cake\index.php on line 55

Si es http://localhost/cake/bookmarks como se indica me sale el mesaje de ‘objeto no encontrado! error 404 lo mismo que al chico del mensaje anterior, tambien utilizo el XAMPP para windows con las versiones mas actuales de apache, php y mysql, la 2.2, 5,1 y 5.01 respectivamente

que hago?? si me pueden decir que mas debo de configurar, sigo todos los pasos tal cual se indican pero me sale ese mensaje, de todos modos sigo revisando….

Gracias!!!!, saludos….

anthemfor182 #9 | Octubre 3, 2006 02:20 PM anthemfor182 dice:

Hola Amigos

Les escribo para presentarles un framework en el que he estado trabajando hace un tiempo. Si otro framework más, pero tiene muchas
cosas interesantes que me gustaría probaran. Este framework lo he usado como parte de las aplicaciones comerciales que desarrollo, pero lo separe
y lo liberé con licencia GNU/GPL, es decir libre para todos.

Inspirado en muchas caractertisticas de rails y siguiendo la línea de Cake, implemente lo siguiente:

- Arquitectura MVC (Modelo, Vista, Controlador)
- Orientado a Objetos en PHP5
- ActiveRecord (ORM Mapeo Objeto Relacional)
- TemplateView (Vistas y algo de Plantillas)
- Generadores de Formularios (Ahorran trabajo y permiten el uso sencillo de grillas)
- Utilizacion de Scriptaculous (Prototype) para AJAX y Efectos Visuales
- Generación de Reportes PDF
y otras cosas más

Tambien he creado algunos screencasts para mostrar el funcionamiento pero necesito hacer otros más.

Igualmente estoy escribiendo un Libro para documentar el framework e incluir algo de tutoriales, esta algo incompleto pero espero les sirva.

El proyecto es software libre los invito a probarlo, utilizarlo y colaborar para mejorarlo.

Se llama Kumbia y esta disponible en http://www.vagoogle.net/kumbia

Saludos

josepzin #10 | Enero 13, 2007 02:47 PM josepzin dice:

Hag!!! estoy renegando MUCHO para instalar CakePHP!!!

Vamos a ver, he visto mil tutoriales sobre como instalarlo, y no tuve ningun problema en seguirlos y en que todo funcione bien, PERO todos esos tutoriales plantean una situacion como si yo instalara un EASYPHP para UN SOLO PROYECTO CAKE! y yo tengo una carpear WWW con montones de proyectos web, y me gustaría en un futuro si logro hacerme con este framework, poder tener varios proyectos funcionando ahí mismo.

Luego, a la hora final subirlos al servidor en internet.

Pero ahora mismo, quiero tener en local, varios proyectos y no logro entender/enterarme COMO HACERLO.

He tocado variables, probado mover carpetas, etc etc… vamos, que ya estoy empezando a cansarme del tema, espero que sea por inutilidad mia.

S.O.S.

josepzin #11 | Enero 13, 2007 03:12 PM josepzin dice:

Bueno, creo que voy entendiendo como va esto…

Pensaba que los archivos de la carpeta “cake” eran comunes para todos los proyectos.

En realidad si quiero tener varios proyectos independientes, en lugar de copiar toda la estructura en una carpeta “/cake”, debería copiarla en una carpeta “/nombre_de_mi_proyecto”… creo…

Jaime #12 | Febrero 5, 2007 06:23 AM Jaime dice:

Hola, no consigo que me funcione el ejemplo de bookmarks.
He instalado el Apache2triad, y descomprimido el cake en la carpeta httpdocs/cake,
y he modificado el archivo de configuración de BD, después de crear la BD, he creado el modelo y el controlador. Pero la página que me muestra es esta:

Fatal: Create the class below in file : app\controllers\bookmarks_controller.php

Puede alguien decirme qué estoy haciendo mal??
Muchas gracias. Un saludo.

Jaime #13 | Febrero 5, 2007 06:24 AM Jaime dice:

Hola, no consigo que me funcione el ejemplo de bookmarks.
He instalado el Apache2triad, y descomprimido el cake en la carpeta httpdocs/cake,
y he modificado el archivo de configuración de BD, después de crear la BD, he creado el modelo y el controlador. Pero la página que me muestra es esta:

Fatal: Create the class below in file : app\controllers\bookmarks_controller.php

Puede alguien decirme qué estoy haciendo mal??
Muchas gracias. Un saludo.

aggiornare #14 | Febrero 18, 2007 09:31 PM aggiornare dice:

Stupore! Amo questo luogo!:)))))))

cavalli #15 | Febrero 24, 2007 05:15 PM cavalli dice:

pagine piuttosto informative, piacevoli =)

jose #16 | Marzo 28, 2007 02:45 PM jose dice:

hola a todos estoy queriendo usar cakephp pero no se como tener varios proyectos sin mesclarlos. me gustaria que me ayudaran

treviso #17 | Abril 9, 2007 07:31 AM treviso dice:

Stupore! Amo questo luogo!:)))))))

Teagan Padgett #18 | Julio 2, 2007 06:11 PM Teagan Padgett dice:

db73cc9c32c42aae2dfab814796fc6b2

Regino #19 | Agosto 27, 2007 07:56 AM Regino dice:

Gracias a este ejemplo por fin pude hacer arracar una pequeña aplicacion con mi base de datos.

Tavo #20 | Noviembre 14, 2007 11:19 PM Tavo dice:

Señores, quisiera saber como hacer para que la pagina que sale cuando utilizamos el scaffold tenga las caracteristicas que yo deseee (tipografia, colores, background) y no las que salen por defecto.

Hay algun lugar donde se pueda configurar eso? o el scaffold viene tal cual?

Contribuye a la discusión

  • Si quieres puedes tener una imagen que te distinga cuando comentes utilizando el servicio de Gravatar
  • Todo post ofensívo y/o ajeno a la discusión será eliminado inmediatamente
  • El HTML no está permitido, pero puedes formatear usando la sintáxis de Textile
  • Si quieres decirme algo privado ;) puedes utilizar la forma de contacto