Uno de los caminos para crear una "plataforma de desarrollo" (y bajar costos de desarrollo) es tener unificadas todas las herramientas que usamos a la hora de desarrollar nuestros sistemas.
Por ejemplo, no deberíamos tener distintas clases de acceso a base de datos o generación de logs según el entorno que estemos trabajando (a menos que tengas una razón coherente para hacerlo ;-) ). Si desarrollas dentro de la misma empresa / proyecto tanto sistemas web tradicionales, sistemas de gestión, páginas wap, o aplicaciones de envío SMS (como es en mi caso), no debería haber razón para tener código duplicado.
Una "plataforma" debería servir para eso, tener ya resuelto los problemas triviales y habituales para concentrarnos solo en los problemas nuevos y no triviales.
Una de las grandes ventajas de Zend Framework es poder usar cada uno de sus componentes fuera de la estructura tradicional de MVC, evitando necesariamente tener que usar un controller, modelo y vista. Si ya usas Zend Framework, puedes aprovechar los componentes también de forma aislada, lo que reusas código y conocimiento en el desarrollo de sistemas (aprendes a usar un componente y lo sigues usando en todos los sistemas).
Un caso puntual es poder eliminar todas las clases "artesanales" que hoy día tenemos para la generación de logs y empezar a uzar Zend_Log.
"La forma de hacerlo"
La primera, es instalar en nuestros servidores en un lugar estandarizado las "librerías", como por ejemplo en /var/www/library instalar Zend Framework.
Luego, deberíamos crear un archivo de configuración para que nuestra aplicación pueda encontrar fácilmente los componentes de Zend. Mi sugerencia es que usen la función de "autoload" (Zend_Loader), así no tienen que estar viendo de llamar una a una las clases que necesitan cada uno de los componentes.
Por ejemplo, no deberíamos tener distintas clases de acceso a base de datos o generación de logs según el entorno que estemos trabajando (a menos que tengas una razón coherente para hacerlo ;-) ). Si desarrollas dentro de la misma empresa / proyecto tanto sistemas web tradicionales, sistemas de gestión, páginas wap, o aplicaciones de envío SMS (como es en mi caso), no debería haber razón para tener código duplicado.
Una "plataforma" debería servir para eso, tener ya resuelto los problemas triviales y habituales para concentrarnos solo en los problemas nuevos y no triviales.
Una de las grandes ventajas de Zend Framework es poder usar cada uno de sus componentes fuera de la estructura tradicional de MVC, evitando necesariamente tener que usar un controller, modelo y vista. Si ya usas Zend Framework, puedes aprovechar los componentes también de forma aislada, lo que reusas código y conocimiento en el desarrollo de sistemas (aprendes a usar un componente y lo sigues usando en todos los sistemas).
Un caso puntual es poder eliminar todas las clases "artesanales" que hoy día tenemos para la generación de logs y empezar a uzar Zend_Log.
"La forma de hacerlo"
La primera, es instalar en nuestros servidores en un lugar estandarizado las "librerías", como por ejemplo en /var/www/library instalar Zend Framework.
Luego, deberíamos crear un archivo de configuración para que nuestra aplicación pueda encontrar fácilmente los componentes de Zend. Mi sugerencia es que usen la función de "autoload" (Zend_Loader), así no tienen que estar viendo de llamar una a una las clases que necesitan cada uno de los componentes.
config.php
set_include_path(
'.' .
PATH_SEPARATOR . '/var/www/library' .
PATH_SEPARATOR . get_include_path()
);
include "Zend/Loader.php";
Zend_Loader::registerAutoload();
Y así incluiríamos ahora la clase Zend_Log en nuestros desarrollos:
test.php
require_once 'config.php';
$writer = new Zend_Log_Writer_Stream('/tmp/test.log');
$logger = new Zend_Log();
$logger->addWriter($writer);
$logger->log('This is a log message!', Zend_Log::INFO);
Listo, ya tenemos un scripts en PHP común y corriente, pero usando ahora un componente del framework Zend.
Así deberíamos poder hacerlo con todos los componentes básicos (base de datos, logs, envío de emails, config, etc), y evitar tener que reinventar la rueda.
¿Te parece útil?
¿Una nueva razón para usar Zend? ¿otros frameworks te permiten hacer lo mismo?
Así deberíamos poder hacerlo con todos los componentes básicos (base de datos, logs, envío de emails, config, etc), y evitar tener que reinventar la rueda.
¿Te parece útil?
¿Una nueva razón para usar Zend? ¿otros frameworks te permiten hacer lo mismo?