martes, 20 de mayo de 2008

Caido el servidor SVN hasta nuevo aviso

Y bueno, lamentablemente tengo que actualizar unas cosas, y por los proximos días estará caido el servidor SVN. Igual intentaré subir las reviciones al grupo: http://groups.google.com/group/amtfwm

viernes, 2 de mayo de 2008

Nuevo esquema de configuración!

Cambió la vieja forma de configuración de nuestro proyecto por una más dinámica y fácil.

Yo no se aplican los modos (desarrollo, producción) en cada archivo de configuracion como antes.

Ahora (en el tree) hay una carpeta llamada /config, con subcarpetas con los modos.
Por defecto vienen 2, la "default" y la "prod", esta última es un ejemplo, pero la carpeta "default" no, esa es obligatoria, ya que contiene la configuración por defecto que tomará si no encuentra el arhivo de configuración necesario en la carpeta del modo.

El ejemplo sería:

/config
|-[default]
| |- db.php
| |- extradata.php
| |- general.php
| |- logs.php
| |- tasks.php
| |- template.php
|-[prod]
| |- db.php
| |- logs.php
|- init.php

Donde los archivos en default, serían los mismo que antes, osea, TODOS los archivos de confoguración del proyecto (bases de datos, encoding, logs, etc), y lo que está en el directorio "prod" se cargarian solo en el caso de que estemos en producción, eso lo decide a su vez el init.php.

init.php:

  1. if ($_SERVER['SERVER_NAME'] == "localhost") {
  2. define ("APP_MODE","dev");
  3. } else {
  4. define ("APP_MODE","prod");
  5. }//if

  6. load_config("general",APP_MODE);
  7. load_config("db",APP_MODE);
  8. load_config("logs",APP_MODE);
  9. load_config("template",APP_MODE);
  10. load_config("tasks",APP_MODE);
  11. load_config("extradata",APP_MODE);

El load_config, lo único que haría es cargar el archivo de configuración segun el modo, si por ejemplo el modo esta seteado en "prod" buscará el archivo en /config/prod, si no existe, lo obtendrá de /config/default.

El modo lo puede sacar de varias formas, ip, dominio, parametros, lo que sea. por ejemplo se puede hacer:
  1. if ($_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['REMOTE_ADDR'] == "190.64.128.10" )) {
  2. define ("APP_MODE","dev");
  3. } else {
  4. define ("APP_MODE","prod");
  5. }//if
Eso por ejemplo seria, que si el server es localhost, sea desarrollo o si el ip que la visita es "190.64.128.10", esto es por ejemplo, para probar sitios en modo dev (con otra DB o logueando todo por ejemplo) en un sitio ya en producción, limitando el acceso solo desde nuestra ip a ese modo.

Otra cosa que cabe destacar, es que también son mas flexibles la llamada a la configuración:

load_config("template",APP_MODE);

Osea que se puede agregar cualquier archivo nuestro y llamarlo usando el esquema de configuración.

load_config("menu",APP_MODE); // lamará a /config/[modo]/menu.php

Para ver los cambios usa el SVN: svn://source.amtfwm.com.ar/amtfwm-current

jueves, 3 de abril de 2008

SVN ¡Por fin!

Buenas, me da mucho placer anunciar que ya tenemos un svn para que puedan descargar el current del proyecto. Los últimos cambios esta reflejados acá.

El acceso anónimo es de solo lectura, pero el que quiera entrar al proyecto para desarrollar, es bienvenido, solo tiene que pedirlo desde el grupo (http://groups.google.com/group/amtfwm) y se le dará un usuario/pass del svn.

svn://source.amtfwm.com.ar/amtfwm-current

Para tener la última versión del código, solo deben hacer un checkout

svn checkout svn://source.amtfwm.com.ar/amtfwm-current

Y para mantenerlo al día:

svn update *

Obviamente en el directorio donde lo quieren tener.