Notas sobre configuración, instalación y desarrollo Archivos importantes .htaccess: Para lograr que funcione correctamente el modulo mod_rewrite de apache y utilizado por Cake, fue necesario modificar los 3 archivos .htaccess que cake requiere. Esta modificación sólo es necesaria para que funcione en anakena. En la intranet se deben usar los .htaccess originales al igual que en la copia local de desarrollo. La modificación consiste en agregar la linea RewriteBase en los 3 archivos .htaccess del sistema los que son: root/.htaccess, root/app/.htaccess y root/app/webroot/.htaccess, entonces solo es necesario borrar o comentar esta línea en cada archivo para la versión a instalar en la intranet y en el desarrollo local. app/config/core.php: Este archivo tiene la configuración básica de cake, en este sólo se debe cambiar la variable referente a si se esta en debug o no al momento de hace pruebas o instalar. Se dejó en debug = 0 en la intranet y en 1 la versión de anakena. Al estar en debug >= 1 se asume que el perfil del usuario es ADMINISTRADOR y no se hace chequeo de login ni expiración de la sesión. app/config/core_mas.php: Este archivo es incluido por el core.php, la idea es que en este archivo se agreguen todas las definiciones de constantes a utilizar en la aplicación y configuración extras necesarias. Aquí también se configura la ruta donde se guardan los archivos subidos al sitio, esta ruta debe ser absoluta y tener permisos de lectura/escritura para el usuario con el que se ejecuta Apache. define('PATH_DOCUMENTO','/u/c/p_grado/public_www/dbpostgrado/app/documento s/'); app/config/database.php: Este archivo tiene la configuración de la base de datos. Sólo ocupamos la bd “default”. Se debe modificar para la instalación final y en la copia loca de desarrollo. app/app_controller.php Este archivo contiene la clase AppController que es de la cual heredan todos los demás Controller. Esto es importante por que si se quiere tener una función global, entonces es mejor definirla aquí. Además en esta clase se prefiere configurar todos los Modelos, Helpers y Components que serán globales a la aplicación. Como excepción en esta clase se incluye el modelo Reporte, que es el que permite mostrar los indicadores en la portada, la forma como se incluyo esta funcionalidad en la portada no es de lo más puristas, por lo que se sugiere que se mejore su implementación en futuras versiones. En la linea 26 if(Configure::read() > 0) lo que esta preguntando es el modo de debug actual, si es mayor a cero implica que estamos en debug. app/app_model.php Este archivo contiene la clase AppModel que es de la cual heredan todos los demás modelos. Idem que AppController sobre la herencia de las funciones. Copia de desarrollo Para empezar a desarrollar se debe contar con: 1) Una base de datos postgreSql. 2) Apache + Php4, se recomienda wamp con plugging para php4. La librería php_postgres no viene activa por defecto, por lo que es necesario activarla a mano en la configuración de php. 3) Modulo mod_rewrite de apache activado, este no viene activo por defecto por lo que es necesario activarlo a mano en la configuración de apache. 4) Cliente SVN, se recomienda TortoiseSvn. Se debe hacer un checkout del trunk de la url: http://anakena.dcc.uchile.cl/svncc51ag1/trunk a una carpeta local. (Suponiendo que alguien ya subió el proyecto) Luego se debe modificar los archivos: - app/config/core_mas.php: se debe especificar la ruta real donde se van a guardar los archivos subidos a la aplicación: define('PATH_DOCUMENTO','c:/wamp/www/dbpostgrado/app/documentos/'); Se debe poner siempre el slash al final para evitar problemas. En el caso de *nix se debe dar permisos de lectura al usuario con el que corre apache. Luego se debe crear la BD usando el script ubicado en: root/db/entrega_final_modelo_v12_y_data_2007-12-12.sql - app/config/database.php: se debe especificar la configuración necesaria de la BD “default”. - archivos .htaccess: se deben modificar los 3 archivos ubicados en: root/, root/app/ y root/app/webroot/ sobrescribiéndolos por sus versiones originales disponibles a contar de la ruta: root/cake/scripts/templates/skel o comentando/borrando la linea RewriteBase. En este caso root sería “dbpostgrado”. Finalmente ejecutar apache + php y abrir el navegador apuntado a http://localhost/dbpostgrado. Si todo salio ok, se debería llegar a la página de bienvenida idéntica a la ubicada en: http://www.dcc.uchile.cl/~cc51ag1/dbpostgrado/ SVN La estructura de SVN fue: / branches/ tags/ iteracion1/ entrega_final_2007-12-12/ trunk/ … Que corresponde a la recomendada por las buenas prácticas de SVN. En la carpeta trunk es donde se realiza todo el desarrollo. En la carpeta tags se guardan “marcas o fotografías” que permiten guardar una versión especifica de lo que esta en el trunk, de esta forma cuando se realizo la entrega 1 y posteriormente la final se generaron sus respectivos tags para guardarlos como históricos. Los tags son como fotografía de como estaba el desarrollo en ese momento. En la carpeta branches se guardan ramificaciones del desarrollo principal, se utilizan mayormente cuando se quiere investigar una forma de hacer las cosas sin afectar al desarrollo principal, entonces se copia el trunk a un Branco y se sigue el desarrollo en paralelo, la idea final es que si el Branco dio buen fruto se vuelva a mezclar con el trunk para aportar al desarrollo principal lo nuevo desarrollado. Esto requiere de mayor manejo de SVN y también de mejor coordinación del equipo, por lo que no se recomienda el uso de branches para programadores sin experiencia en SVN. Final Espero que esta guía le sea de utilidad a quien la lea. Cualquier duda sobre el software, Cake, Apache, Php o postgreSql primero pregúntele a san Google y luego a su auxiliar.