Desarrollando una aplicacion Cakephp Vs “A lo Ranger”.

Bueno  a partir de hoy martes en la noche, voy a empezar una aplicacion en php para enseniar las capacidades del framework Cakephp vs codigo espaguetti (a lo ranger). He decidido hacer una aplicacion para manejar el  directorio telefonico de mi oficina a ver que tal me va. Primero intentare hacer sin ajax la app. para poder terminar rapido. Voy a intentar hacer todo el proceso desde el planeamiento hasta el desarrollo, e inclusive hacer el commit a un svn para poder manejar la app como una app profesional.

Vivos pues

Volviendo a utilizar Cakephp

Bueno, en estos momentos me encuentro programando una aplicacioncita de Planillas (Nominas) que controla el pago de lo cosechado por los empleados en la finca de café. Está agarrando forma. A ver si logro terminar antes de mañana Lunes.

#vivos

Reto de esta semana.

Esta semana me he impuesto el reto de programar el sistema de Planilla para las fincas donde trabajo. El sistema es super sencillo porque lo llevo en una hoja de calculo de Openoffice.org. Mi jefe me ha pedido que en mi tiempo libre programe una aplicacion sencilla de usar para que cualquiera que vaya a la finca pueda usarla e imprimirla sin complicaciones. Cual es el reto? bueno la tendencia segun mi experiencia es que uno tiene que poner mas rutinas de validacion para limitar al usuario a no cometer errores. Como la forma mas facil para mi es programar en php, tengo pensado usar Ajax para que me ayude a hacer la app mas amigable y sencilla. Pero sino la version 0.1 será en php vil in sencillo. A ver que tal me vá ya tengo diseñada la DB y voy a postear el ejemplo una vez lo tengo dominado.

Instalando apache+php+mysql+cakephp en un servidor Debian Etch Stable

Bueno como encargo en la oficina donde trabajo, tengo que poner una app. de control de contactos para las empresas que manejamos aka. Como quiero que la asistente digite (o cualquiera) desde su PC, los contactos que quieran decidí poner la aplicacion tipo web. Perfectamente púde bajar un script de manejo de contactos y poner una app. tipo groupware mas compleja, pero decidí hacer algo sencillo y costumizado a la vez. La idea es poner un directorio telefonico modelado en mi agenda personal y con un par de cosillas mas que pueden ser utiles para buscar la informacion de contactos. Se me ocurre poner una opcion de “tags ” como del.icio.us para buscar palabras como “abono”, “taller”. No es necesario que sea Web 2.0 pero si me gusta piensa implementarlo. Ademas tengo que tener la posibilidad de ordenar por campos por si quiero hacer una busqueda mas lenta pero segura. Bueno, se oye algo complejo pero ya tengo un buen pedazo del rompecabezas armado. Mi veredicto? pues Debian Etch, con LAMP y una framework de desarrollo de php que se llama cakephp. He tenido algo de experiencia en ella y quiero seguir probandola.

Este es la primera parte del howto de como instalar LAMP en Debian Etch y cakephp.

paso 1

apt-get install mysql-server mysql-client

paso 2

mysqladmin -u root password yourrootsqlpassword

checkamos las conecciones.
usando netstat -tap

spartan:~# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 localhost:mysql         *:*                     LISTEN     4829/mysqld

paso 3
Instalamos apache server version 2.

apt-get install apache2 apache2-doc

Ahora instalamos los modulos q podremos utilizar en un futuro.

apt-get install libapache2-mod-php4 libapache2-mod-perl2 php4 php4-cli php4-common php4-curl php4-dev php4-domxml php4-gd php4-imap php4-ldap php4-mcal php4-mhash php4-mysql php4-odbc php4-pear php4-xslt curl libwww-perl imagemagick

Ahora configuramos el apache para que apunte a cake, primero hacemos backup del default de apache2
spartan:~# cd /etc/apache2/sites-available/
spartan:/etc/apache2/sites-available# ls
default
spartan:/etc/apache2/sites-available# cp default default.original

ahora hacemos una copia para modificarla nosotros

spartan:/etc/apache2/sites-available# cp default default.cake
la abrimos con nuestro editor favorito (el mio VIM)

cambiamos
DocumentRoot /var/www/
por
DocumentRoot /var/www/agenda/cake/app/webroot/
cambiamos
<Directory /var/www/>
por
<Directory /var/www/agenda/cake/app/webroot/>
tambien aseguremonos d tener

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

Ahora creamos un directorio debajo de /var/www/

spartan:/etc/apache2/sites-available# cd /var/www/
spartan:/var/www# mkdir agenda
spartan:/var/www# cd agenda/

Bajamos en este directorio la app de cake yo baje la cake_1.1.14.4797.tar.gz
podemos bajarlo de http://www.cakephp.org
descomprimimos el archivo y renombramos el directorio.
spartan:/var/www/agenda# tar xzvf cake_1.1.14.4797.tar.gz
spartan:/var/www/agenda# mv cake_1.1.14.4797 cake

ahora solo falta copiar el default de cake y reiniciar el servicio de apache
spartan:/var/www/agenda# cp /etc/apache2/sites-available/default.cake /etc/apache2/sites-available/default
spartan:/var/www/agenda# /etc/init.d/apache2 restart

Ahora apuntamos a la direccion del servidor que hemos instalado, el mio es http://192.168.1.2/ y vemos

Ok cualquier pŕoblema yo con gusto puedo ver que pasa.

cualquier cosa anexo una copia de defaul.cake para que puedan probarla. defaultcake.doc

La instalacion de LAMP la saqué de Debian perfect setup de howtoforge