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



Disclaimer: Este tutorial ha sido traducido y adaptado de éste otro por Graham Bird
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
Bro, ¿que te pasa? You’re on fire!!!!
El directorio debe ser /app/controllers
Excelente el tutorial
Hey, Gracias Cristian por la aclaración, ya está coprregido.
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
La verdad es que no me entero muy bien de que va esto, pero parece interesante.
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
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….
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
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.
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…
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.
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.
Stupore! Amo questo luogo!:)))))))
pagine piuttosto informative, piacevoli =)
hola a todos estoy queriendo usar cakephp pero no se como tener varios proyectos sin mesclarlos. me gustaria que me ayudaran
Stupore! Amo questo luogo!:)))))))
db73cc9c32c42aae2dfab814796fc6b2
Gracias a este ejemplo por fin pude hacer arracar una pequeña aplicacion con mi base de datos.
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