Hemeroteca de la sección “CakePHP”


Aunque en el título indico que es para CakePHP, en realidad el problema y la solución que aquí proponemos se puede extender a toda aplicación realizada en php.

Bien, cuando nos sale este error en CakePHP, normalmente nos indica que está en un controller. La solución es muy sencilla, pero si no se sabe uno se puede volver loco.

Simplemente tenemos que ir al final de ese archivo php y borrar todo los espacios y retornos de carro que haya a partir del ?> final, es decir, os situáis tras él y empezáis a pulsar la tecla suprimir como un condenado.

Si os fijáis cuando os da el error os indica un número de línea la cual es superior al tamaño del fichero, o eso creemos nosotros.

Espero que os sea de utilidad.

Comentarios 1 comentario »

Una de las cosas que más me maravillan de CakePHP, es la facilidad que tiene para hacer una rápida y sencilla administración.

Cuando comenzamos con este framework es habitual empezar con ésto, ya que nos muestra la facilidad que nos da y la potencia que tiene.

La mejor forma que encuentro de explicarlo es con un rápido ejemplo.

En primer lugar, creemos una base de datos con una sencilla tabla.

CREATE TABLE `noticias` (
`id` int(11) NOT NULL auto_increment,
`titulo` varchar(30) NOT NULL,
`cuerpo` varchar(500) NOT NULL,
`user_id` int(11) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;


– Volcar la base de datos para la tabla `noticias`

INSERT INTO `noticias` VALUES (1, ‘Bienvenido’, ‘Pues eso, que bienvenido …’, 1, ‘0000-00-00 00:00:00′, ‘2008-07-13 11:40:07′);
INSERT INTO `noticias` VALUES (2, ‘Segunda noticia’, ‘Cuerpo de la noticia’, 2, ‘2008-07-13 11:39:23′, ‘2008-07-13 11:39:23′);

Hay algunos campos que, nombrándolos de una forma determinada, harán que CakePHP los reconozca y actúe en consecuencia. Éstos son, en este ejemplo, id, el cual servirá para que a la hora de insertar se añada de manera automática la clave correspondiente, y created/modified, que nombrados de esta forma se rellenarán solos a la hora de ser creados/modificados cada registro de la tabla.

Ahora creamos el controller. Su nombre será noticias_controller.php y lo situaremos en la carpeta /app/controllers.

<?class NoticiasController extends AppController
{
var $name = ‘Noticias’;
var $scaffold;
}?>

Como os podéis fijar, tanto el nombre de la tabla como de la clase es en plurar, algo que no cumple las convenciones que todos usamos, pero que así lo ha decidido los creadores de Cake, y así es como funciona correctamente.

Y por último, creamos el model, en la carpeta /app/models y con el nombre noticia.php.

<?class noticia extends AppModel
{
var $name = ‘Noticia’;
}
?>

En este caso, como observamos, es en singular. No le busquéis explicación, es así y listo.

Y con ésto ya está todo, ahora solo tenemos que poner la ruta http://rutadenuestroproyecto/noticias, y accederemos a una bonita administración.

Comentarios 3 comentarios »

Ya vimos como podíamos instalar CakePHP de una forma fácil y rápida. Esa manera de hacerlo es totalmente válida, pero si queréis realizar diferentes aplicaciones con CakePHP, y que todas se controlen desde un núcleo común, hay otra forma de hacerlo mucho más eficiente.

Todo lo que describiré a continuación lo realizaré desde Mac Os X, aunque para cualquier distribución linux se haría de forma similar.

Para ésto, lo que vamos a hacer es, mediante la consola, descargarnos el proyecto desde el subversion de CakePHP. Lo descargaremos con el siguiente comando.

$ svn co https://svn.cakephp.org/repo/trunk/cake/1.2.x.x/ /usr/local/cake

Como véis, me lo he descargado en una carpeta que he creado en la ruta /usr/local, para tenerlo accesible para todas las aplicaciones. Además, cuando queramos actualizar CakePHP a la última versión solo tendremos que ejecutar el comando

$ svn update

desde /usr/local/cake.
Una vez hecho esto, necesitamos tener en el path a Cake, para poder ejecutar, desde cualquier sitio, todas las funcionalidades que posee su consola. Para ello, basta con ejecutar por consola lo siguiente:

# ln -s /usr/local/cake/cake/console/cake /usr/local/bin/cake
# ln -s /usr/local/cake/cake/console/cake.php /usr/local/bin/cake.php

Ya solo nos queda crear el esqueleto de nuestra aplicación. Al tener cake en el path, podemos ejecutarlo desde cualquier sitio. Nos situamos donde queramos y realizamos lo siguiente:

# cake bake project miProyecto

Nos pedirá confirmación, creará la estructura básica, y ya lo tenemos todo.

A partir de aquí es igual que al instalarlo de la manera que describimos en la anterior entrada, así que os remito a ella para que finalicéis la configuración.

No hace falta decir que este último paso lo podéis hacer las veces que queráis y en donde queráis, pero con la ventaja de siempre tener un punto común de vuestro CakePHP, configurado una sola vez, y siempre actualizado.

Comentarios No hay comentarios »

Llevaba tiempo buscando un buen framework para php que cumpliera mis expectativas, y por fin he encontrado uno. Se trata de CakePHP, que comenzó a funcionar en el año 2005, poco después de crearse Ruby on Rails y siguiendo la filosofía de éste.

CakePHP sigue el patrón MVC, así que si tienes conocimientos en este patrón de diseño, y manejas más o menos bien PHP, puedes tener una aplicación sencilla funcionando en pocos minutos. Eso sí, si ya quieres hacer algo más complejo, habrá que echarle algunas horillas más, porque tiene muchos detalles que ir descubriendo. Y eso estoy haciendo yo, y quiero compartir con vosotros todo lo que vaya aprendiendo.

Para empezar, vamos a instalarlo, ¿os parece?

  • En primer lugar tienes que tener instalado en tu máquina un servidor local y una base de datos. Os aconsejo la conbinación apache+mySQL, y para esto hay muchas aplicaciones que te lo instalan y configuran todo en un momento, como pueden ser appserv para windows o MAMP para Mac Os X.
  • Hay que bajarse CakePHP de su página oficial. Aconsejo bajarse la última versión estable, aunque si queréis ser testers improvisados, probad con la última beta que encontréis. Este paquete hay que descomprimirlo en el htdocs de tu apache (si has elegido esta opción).
  • Lo siguiente que hay que hacer es crearse una base de datos para CakePHP, y configurar la aplicación con los datos de la misma. Esto se hace en el archivo Cake\app\config\database.php, completando las diferentes variables (host, login, password, database) con los parámetros de vuestra base de datos.
  • Para que todo esto funcione, hay que tener activado el módulo mod_rewrite. Para ello, en la configuración de Apache debemos desmarcar el comentario (#) de la siguiente línea en httpd.conf: #LoadModule rewrite_module modules/mod_rewrite.so

Y ya está, si todo va correcto os tendría que salir la siguiente pantalla:

En siguientes entradas iremos avanzando y crearemos una pequeña aplicación en pocas líneas. ¡Estad atentos!

Comentarios 3 comentarios »

Creative Commons License Esta obra está bajo una licencia de Creative Commons