0% encontró este documento útil (0 votos)
315 vistas

Symfony PHP Framework

El documento describe tres populares frameworks para PHP: Symfony, CakePHP y Zend Framework. Symfony es uno de los frameworks más extendidos actualmente y fue desarrollado inicialmente por Sensio Labs para crear aplicaciones web complejas en PHP de forma rápida y ordenada. Symfony utiliza el patrón MVC y otros patrones de diseño para facilitar el desarrollo y mantenimiento del código. El documento también proporciona instrucciones básicas para instalar Symfony.

Cargado por

calex1965
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
315 vistas

Symfony PHP Framework

El documento describe tres populares frameworks para PHP: Symfony, CakePHP y Zend Framework. Symfony es uno de los frameworks más extendidos actualmente y fue desarrollado inicialmente por Sensio Labs para crear aplicaciones web complejas en PHP de forma rápida y ordenada. Symfony utiliza el patrón MVC y otros patrones de diseño para facilitar el desarrollo y mantenimiento del código. El documento también proporciona instrucciones básicas para instalar Symfony.

Cargado por

calex1965
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

�����������

Frameworks PHP:
Desarrollo web rápido ARTURO FERNÁNDEZ
[email protected]

ada vez resulta más necesa- más extendido para el desarrollo de aplica-

C rio utilizar un framework para


crear aplicaciones web de
forma rápida, estructurada y efi-
ciones web. Pensemos que raro es el servi-
cio de hosting que no lo utiliza y ofrece en
sus servidores. La situación empieza a
ciente. Durante mucho tiempo los cambiar a partir de 2005, comenzando el
más populares han estado asocia- desarrollo como proyectos opensource de
dos a lenguajes como Ruby y Java, varios frameworks para PHP, llegando a ser
sin embargo, los desarrolladores algunos de ellos lo más utilizados en la ac-
de PHP también cuentan con algu- tualidad. Dentro de ellos, tres son los más
nos que ganan en popularidad día a populares: Symfony, CakePHP y Zend
día. Tres de los más utilizados son Framework. A continuación realizaremos
Symfony, CakePHP y Zend. Veamos un recorrido donde estudiaremos las princi-
qué puede ofrecernos cada uno. pales funcionalidades de cada uno de ellos. Figura 1. Sitio web oficial del proyecto Symfony.
Desde hace algunos años son muchos
los desarrolladores que han optado por in- SYMFONY configurar y aprender. Symfony es un fork
corporar la utilización de un framework para En la actualidad este es uno de los fra- del proyecto Mojavi, una de las primeras im-
el desarrollo de aplicaciones web. Las ven- meworks web para PHP más extendidos. plementaciones del patrón MVC (Model
tajas que estos aportan son muchas, entre Entre los sitios web que lo utilizan destacan View Controller) para PHP, siendo éste una
ellas, la de proporcionar una serie de com- del.icio.us y Yahoo! Bookmarks, los cuales de las bases de Symfony.
ponentes software para facilitar el trabajo reciben millones de visitas diarias. Esto nos Gracias a la utilización de esta herra-
de desarrollo y mantenimiento de aplicacio- confirma lo preparado que está Symfony mienta podemos liberarnos de las tareas
nes, logrando una estructura modular y ex- para entornos de producción con un eleva- repetitivas como la creación de sentencias
tensible. do tráfico. Fue desarrollado inicialmente por SQL, ya que nos proporciona un acceso
Muchos piensan que los frameworks la empresa francesa Sensio Labs y actual- encapsulado a la base de datos. Symfony
están pensados para aplicaciones comple- mente es un proyecto opensource en el utiliza una serie de patrones de diseño,
jas y empresariales, sin embargo son muy que participa una comunidad bastante ex- siendo el principal MVC, lo que nos ayuda a
útiles para cualquier tipo de aplicación web, tensa, capitaneada por un equipo de siete escribir código de una forma sencilla pero
con independencia de su tamaño o función. personas, formado por un jefe de proyecto, estructurada y ordenada. El resultado es un
Si bien, es cierto que algunos son desacon- co-fundador de la iniciativa y seis desarrolla- código sencillo de leer y fácil de mantener.
sejables porque son más complejos que el dores. Symfony se distribuye bajo la MIT li- Este framework está claramente influencia-
propio problema a resolver, en la mayoría cense, siendo la última versión estable libe- do por Ruby on Rails y se basa en muchos
de las aplicaciones son muy recomenda- rada la 1.2.7. Al ser un framework PHP se de sus principios, especialmente en aque-
bles. Principalmente porque facilitan y pro- puede instalar en cualquier plataforma que llos relacionados con los métodos ágiles de
mueven el desarrollo rápido de aplicaciones permita la instalación y ejecución de un ser- desarrollo. Por ejemplo, Symfony aplica el
aplicando principios y técnicas ágiles de de- vidor web capaz de interpretar este lengua- principio de convention over configuration
sarrollo. Resultan especialmente prácticos je. El único requerimiento es que Symfony evitando los ficheros de configuración ba-
en el contexto de la web, donde los cam- necesita la versión 5.2 de PHP. sados en XML.
bios son continuos y los tiempos de desa- La principal motivación para el desarro- La arquitectura software de Symfony es
rrollo suelen ser ajustados. llo de esta herramienta fue la necesidad de modular y está basada en plugins, lo que
Algunos de los primeros frameworks crear de forma rápida y ordenada aplicacio- nos permite ampliar su funcionalidad y utili-
web en popularizarse lo hicieron gracias a nes web complejas en PHP. Además, dado zarla de forma personalizada, ajustándola a
lenguajes como Java y Ruby. En concreto, que algunos frameworks web diseñados nuestras necesidades.
nos referiremos a Apache Struts y Ruby para otros lenguajes son muy complejos, En lo que respecta al acceso a base de
on Rails, dos de los pioneros y que han los desarrolladores de Symfony tuvieron en datos, utiliza por defecto Creole como capa
servido de inspiración para el desarrollo de cuenta que éste debería ser fácil de instalar, de abstracción para acceder al SGBD y
muchos otros. Sin embargo, durante mu-
cho tiempo, los desarrolladores de PHP no
contaron con ninguno específico. Este he- CakePHP es un completo framework para desarrolladores
cho resulta chocante, especialmente cuan-
do éste es el lenguaje de programación Sumario
de Par desean escribir aplicaciones PHP
Rails que
26 Número 104 www.studiopress.es
FRAMEWORKS PHP REPORTAJE

Propel como ORM (Object-Relational $ sudo apt-get install rectamente el código fuente a través del
Mapping), el cual se encarga de establecer php5-symfony control de versiones Subversion. La instala-
la correspondencia entre objetos y tablas, ción usando PEAR es bastante sencilla,
permitiendo el acceso a las mismas y libe- Debemos ser prudentes, pues por basta con ejecutar los siguientes coman-
rando al programador de la tediosa tarea de ejemplo, Ubuntu incluye la versión 1.0 y la úl- dos:
escribir todas las sentencias SQL. Symfony tima estable es la 1.2. Para el resto de distri-
también nos permite utilizar Doctrine en lu- buciones seguiremos un método alternati- $ pear channel-discover
gar de Propel, siendo en este caso PDO, vo. Para facilitar la instalación, Symfony dis- pear.symfony-project.com
que forma parte de PHP5, la capa de abs- tribuye un fichero tarball que contiene las li- $ pear remote-list -c symfony
tracción a base de datos. Si nunca hemos brerías básicas y la configuración necesaria $ pear install symfony/symfony
trabajado con un ORM es recomendable para comenzar a desarrollar. Este fichero se
utilizar Propel, sin embargo si estamos habi- denomina sandbox y basta con descompri- PEAR existe como paquete binario en la
tuados a Doctrine basta con instalar el co- mirlo en un directorio accesible para el ser- mayoría de las distros, para instalarlo por
rrespondiente plugin (sfDoctrinePlugin). vidor web. En primer lugar lo descargare- ejemplo en Ubuntu:
Symfony se apoya en otros proyectos mos ejecutando:
opensource integrando software desarro- $ sudo apt-get install php-pear
llado por los mismos. Aparte de los mencio- $ wget
nados ORM, también incluye librerías http://www.symfony-project.org En cuanto completemos la instalación,
JavaScript como Prototype y script.aculo. /get/sf_sandbox_1_2.tgz podemos crear nuestra primera aplicación,
us, utilizadas ambas para AJAX, el editor de tal y como veremos a continuación.
texto TinyMCE y el componente para añadir Luego pasamos a descomprimirlo:
calendarios de Dynarch.com, además de ■ PRIMEROS PASOS
otros proyectos PHP como Prado (soporte $ cd /var/www La mencionada sandbox incluye la configu-
para internacionalización), Spyc (para $ tar -zxvf sf_sandbox_1_2.tgz ración básica de una aplicación, sin embar-
YAML) y Pake (línea de comandos). go, habitualmente no la utilizaremos, sino
Ahora que tenemos una idea general de Podemos comprobar que todo es co- que deberemos crear nuestras propias
lo que nos ofrece Symfony es el momento rrecto accediendo a la siguiente URL a tra- aplicaciones utilizando las herramientas que
de pasar a ver cómo instalarlo en nuestro vés de nuestro navegador favorito: Symfony pone a nuestra disposición. Como
PC. http://localhost/sf_sandbox/web/frontend_ ya hemos realizado la instalación a través
dev.php de PEAR, ahora estamos listos para crear
■ INSTALACIÓN En esta página web se nos informa de nuestra primera aplicación a través de un
El primer requisito que debemos cumplir que el proyecto básico que incluye la sand- sencillo proceso. El primer paso es crear la
para instalar Symfony es el disponer de una box ha sido creado correctamente, tal y co- estructura base de la aplicación, para ello
plataforma capaz de ejecutar aplicaciones mo muestra la Figura 2. A partir de aquí ya ejecutamos:
PHP. Habitualmente, en GNU/Linux a esta podemos empezar a trabajar con Symfony
plataforma se la denomina LAMP (Linux, utilizando esta configuración inicial. $ cd /var/www
Apache, MySQL y PHP) y la mayoría de las $ cd myapp
distribuciones incluyen paquetes binarios $ symfony generate:project myapp
para la instalación del software. Dado que $ symfony generate:app frontend
esta instalación queda fuera del ámbito de
este reportaje, daremos por sentado que el Estos comando crearán una serie de di-
lector está familiarizado con el desarrollo de rectorios y ficheros básicos para la aplica-
PHP y dispone ya del software base instala- ción, entre ellos encontraremos el fichero
do en su máquina. Aunque utilizaremos index.php dentro del directorio web, que
MySQL, Symfony permite, gracias a la capa
de abstracción de base de datos, trabajar
con otros sistemas gestores de bases de
datos, como por ejemplo, PostgreSQL y
Oracle. Dado que vamos a instalar la última
versión estable de Symfony es necesario Figura 2. Proyecto creado con éxito.
tener instalada previamente, al menos la
versión 5.2 de PHP. Podemos comprobar La instalación de la sandbox está solo
esto ejecutando el comando php con el pa- pensada para entornos de desarrollo y es
rámetro -v. una forma fácil de empezar a trabajar con
Algunas distribuciones, como es el caso Symfony, sobre todo al principio cuando es-
de Ubuntu 9.04, incluyen paquetes binarios tamos aprendiendo. Sin embargo, para en-
para la instalación de Symfony. Si nuestra tornos de producción no debemos utilizar-
distribución se encuentra entre una de ellas, la, sino que debemos realizar la instalación
basta con instalar el correspondiente pa- la aplicación y sus principales librerías aso-
quete utilizando el método habitual de ins- ciadas de forma diferente. Para ello dispo-
talación. Por ejemplo, en Ubuntu ejecuta- nemos de dos opciones: utilizar PEAR (PHP Figura 3. Generando la estructura básica de la aplicación
mos: Extension and Application Repository) o di- desde línea de comandos.

www.studiopress.es Número 104 27


REPORTAJE FRAMEWORKS PHP

será el fichero principal de acceso para el a la documentación (ver Cuadro referen- Al igual que Symfony, CakePHP utiliza
entorno de producción. cias) que aparece en la página web del como base el patrón MVC, empleando cla-
El siguiente paso es configurar nuestro proyecto para ver más detalles sobre el de- ses que proporcionan abstracción y oculta-
Apache, por ejemplo a través de la creación sarrollo de aplicaciones con esta herra- miento de información, facilitando así la ta-
de un Virtual Host, para ello añadiremos las mienta. rea de desarrollo. En comparación con
líneas que se muestran en el Listado 1 al fi- otros frameworks, CakePHP es extrema-
chero principal de configuración de este damente sencillo de configurar y utilizar. Por
servidor web (httpd.conf). ejemplo, para instalarlo basta con descom-
Seguidamente accederemos a la URL primir un tarball y empezar a escribir nues-
http://localhost/frontend_dev.php y podre- tras clases, siguiendo la convención utiliza-
mos ver que la configuración se ha realiza- da por esta herramienta. Incluso el desplie-
do de forma correcta. gue en entornos de producción es sencillo,
Symfony nos proporciona una serie de ya que es posible utilizar un único directorio
comandos para crear un esquema de base donde reside todo el código base de
de datos y el correspondiente mapping en- CakePHP y utilizar un directorio específico
tre tablas y clases utilizando por defecto el por aplicación.
ORM Propel. Es posible automatizar la crea- CakePHP utiliza una serie de clases que
ción de métodos y clases para realizar ope- actúan como ORM, sin necesidad de utilizar
raciones CRUD (Create, Read, Update and Figura 4. Formulario de alta autogenerado por Symfony. uno específico. Siguiendo una serie de con-
Delete), incluyendo las correspondientes venciones, podemos directamente crear
templates HTML con un estilo por defecto, CAKEPHP unas clases que actuarán como mapping a
las cuales podemos personalizar. Por ejem- El desarrollo de este fra- las tablas que tengamos en una base de
plo, este sería el código inicial de una clase mework comenzó allá datos creada previamente. Podemos tra-
correspondiente al modelo y enlazada a por 2005, el año en que bajar con distintos sistemas gestores de
una tabla llamada post: precisamente Ruby on bases de datos sin problema, gracias a las
Rails estaba ganando clases que incluye para realizar la abstrac-
<?php popularidad. CakePHP ción. A través de scripts como cake y bake
class Post extends BasePost { está basado en este podemos crear automáticamente clases
} framework de Ruby y aunque no pretende del modelo y formularios HTML para realizar
?> ser un port para PHP sí que está claramente operaciones CRUD, aplicando la técnica de
influenciado en él. Entre sus principales ca- scaffolding.
Para mostrar un enlace en una plantilla racterísticas destacan su diseño pensado, Los helpers son una serie de compo-
HTML que nos muestra un listado de todos para que tanto la configuración, como la uti- nentes que incorpora CakePHP para facili-
los posts, utilizaríamos el siguiente frag- lización sea sencilla, el uso intensivo de téc- tar la generación de vistas en la parte clien-
mento código: nicas propias de metodologías ágiles de te, incluyendo funcionalidades AJAX. Los fi-
desarrollo, una serie de aplicaciones para cheros que actúan como plantillas HTML
<li><?php echo link_to(‘Listado utilizar desde la consola y la compatibilidad tienen la extensión ctp y se puede utilizar di-
de posts’, ‘post/index’)?></li> con PHP 4 y 5. Precisamente, ésta es una rectamente código PHP junto a HTML es-
de las características más importantes, ya tándar, para generar la salida al cliente des-
La Figura 4 nos muestra un ejemplo que muchos servicios de hosting y/o servi- de un determinado controller.
para crear un nuevo post utilizando los for- dores antiguos solo tienen instalada la ver- La última versión estable de CakePHP
mularios y acciones generadas automáti- sión 4 de PHP. Aunque utiliza orientación a es la 1.2, aunque continuamente se liberan
camente por el framework. objetos, lo hace de forma limitada para ga- versiones que incluyen mejoras. En con-
Hasta aquí nuestra introducción a rantizar la compatibilidad con dicha versión creto, la 1.2.3.8166 fue liberada en mayo
Symfony. Recomendamos echar un vistazo de PHP. de este año. La licencia bajo la que se dis-
tribuye es la MIT license, al igual que
Symfony.
Listado 1. Fichero httpd.conf
<VirtualHost *:80>
DocumentRoot “/var/www/myapp”
DirectoryIndex index.php
Alias /sf /usr/share/php/data/symfony/web/sf
<Directory “/usr/share/php/data/symfony/web/sf”>
AllowOverride All
Allow from All
</Directory>
<Directory “/var/www/myapp/web”>
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
Figura 5. Sitio web de CakePHP.

28 Número 104 www.studiopress.es


FRAMEWORKS PHP REPORTAJE

■ UN POCO DE CÓDIGO <li> <?php echo $post[‘Post’]


Crear nuestra primera aplicación en CakePHP [‘title’]; ?> </li>
es tan sencillo como descargar el fichero <? } ?>
tarball correspondiente a la última versión
estable y descomprimirlo en un directorio La URL correspondiente para ver todos
accesible por el servidor web. Al igual que los posts sería: http://localhost/posts/
en Symfony, daremos por hecho que tene- En CakePHP es muy importante tener
mos instalado todo lo necesario para correr en cuenta la convención, dada su extrema
aplicaciones PHP, incluyendo un sistema simplicidad a la hora de realizar configura-
gestor de base de datos como MySQL. ciones. Un fallo de utilización en la conven-
Procedemos a la descarga accediendo ción provocará que la aplicación no funcio-
a la URL http://cakeforge.org/frs/down- ne de la forma deseada. Así pues, hemos
load.php/717/cake_1.2.3.8166.tar.gz/ Figura 6. CakePHP configurado inicialmente con éxito. de estar pendientes para no cometer erro-
donation=false desde nuestro navegador res sencillos como escribir en singular el
web y, en cuanto finalice la descarga, lo podemos escribir una clase modelo enlaza- nombre de los controllers en lugar de ha-
descomprimimos ejecutando: da a la misma, creando un fichero PHP lla- cerlo en plural, tal y como indica la conven-
mado post.php en el directorio app/models ción.
$ tar -zxvf con el siguiente código: CakePHP tiene muchas similitudes con
cake_1.2.3.8166.tar.gz Rails, con lo que a los desarrolladores de
<?php Ruby les será muy fácil utilizarlo si en alguna
Por comodidad, renombraremos el di- class Post extends AppModel { ocasión necesitan trabajar en PHP.
rectorio creado como consecuencia de la var $name = ‘Post’; Posiblemente sea el framework PHP más
extracción de este fichero: } parecido a Rails.
?>
$ mv ZEND FRAMEWORK
cake_1.2.3.8166.tar.gz myapp Previamente hemos de indicar la base Dos de los principales desarrolladores de
de datos que vamos a utilizar en el fichero PHP crearon una empresa llamada Zend
Seguidamente añadiremos a nuestro fi- app/config/database.php. La estructura de Technologies que se encarga de desarrollar
chero de configuración de Apache las si- este fichero, tal y como comprobaremos, y comercializar una serie de productos soft-
guientes líneas: es muy sencilla e intuitiva. ware basados en PHP y en el motor de este
Para mostrar todos los posts que tene- lenguaje llamado Zend. La mayoría de estos
DocumenRoot mos en la base de datos, basta con crear productos son opensource y entre ellos se
/var/www/myapp/app/webroot un controller al que llamaremos posts_con- encuentra el framework web conocido co-
<Directory “/var/www/myapp”> trollers en el directorio, al que añadiremos el mo Zend Framework (ZF). Su desarrollo co-
Options Indexes FollowSymLinks siguiente código: menzó allá por 2005, año en el que surgían
AllowOverride All con fuerza otros para lenguajes como Java y
</Directory> <?php Ruby, siendo la primera versión estable libe-
class PostsController extends rada a finales de 2007. ZF se distribuye bajo
Posteriormente damos permisos de AppController { la licencia New BSD license recientemente
escritura y acceso al directorio tmp, ejecu- function index() { aprobada por la OSI (Opensource Initiative),
tamos: $this->set(‘posts’, lo que permite crear aplicaciones privativas a
$this->Post->find(‘all’)); partir del fuente de este framework. La últi-
$ chmod 777 -R } ma versión liberada es la 1.8.1.
/var/www/myapp/app/tmp } Entre los objetivos de ZF se encuentran
?> los de promover buenos hábitos de progra-
Ahora accederemos a través de nues- mación en PHP, lenguaje muy dado, por
tro navegador a la URL http://localhost y ve- El fragmento de código correspondien- otro lado, al cowboy coding.
remos algo similar a lo que muestra la te a la plantilla HTML sería el siguiente: ZF ofrece una serie de componentes
Figura 6. modulares que podemos utilizar de forma
Supongamos que tenemos creada una <?php foreach ($posts as $post) independiente. En lugar de utilizar el fra-
base de datos que contiene la tabla posts, { ?> mework de una forma fija y estructurada, ZF

Tabla 1. Comparativa frameworks PHP opensources


Testing Validación de
Ajax i18n & i10n ORM Caché
framework formularios
Prototype, JQuery,
Symfony Sí No Sí Propel, Doctrine Sí
script.aculo.us
A través de Clases propias basadas en el patrón
CakePHP Sí No Sí Sí
helpers ActiveRecord
Toolkit
Zend Sí No Sí Gateways independientes Sí
independiente

www.studiopress.es Número 104 29


REPORTAJE FRAMEWORKS PHP

nos permite flexibilizar y elegir aquellos ello basta con ejecutar desde la línea de co- CONCLUSIONES
componentes que necesitamos para nues- mandos: Si estamos buscando un framework PHP
tras aplicaciones. Estos componentes se sin duda la elección pasa por uno de estos
encuentran divididos en una serie de cate- $ zf.sh create project myapp tres que hemos comentado aquí. Para
gorías según su funcionalidad. Entre ellos aquellos que se inician en el desarrollo con
encontramos los que sirven para aplicar el Contrariamente a CakePHP, ZF utiliza este tipo de herramientas, CakePHP pue-
MVC, otros para interactuar con una base una serie de ficheros de configuración basa- de ser la mejor opción. Si buscamos un fra-
de datos a modo de ORM, los que nos ayu- dos en propiedad=valor, siendo el principal mework flexible y apoyado por la industria
dan a escribir aplicaciones en varios idio- de ellos application/configs/application.ini. sería interesante decidirse por ZF. Symfony
mas y los que soportan la creación de servi- Por defecto, ZF incorpora un controller puede resultar algo intermedio entre la
dores y clientes de servicios web. básico llamado Bootstrap, que es una clase sencillez de CakePHP y la complejidad de
Las vistas se pueden escribir en PHP PHP que contiene el siguiente código: ZF.
mezclado con HTML, pero deben tener la En cuanto a las funcionalidades y com-
extensión .phtml. Todas las vistas deben en- class Bootstrap extends ponentes que nos ofrecen, los tres produc-
contrarse en el directorio application/views/ Zend_Application_Bootstrap_ tos son similares. Estando pendiente la
scripts. En lo que respecta a los tests, ZF re- Bootstrap { } elección de otros factores, como por ejem-
quiere y utiliza el framework PHPUnit para po- plo, si preferimos un ORM determinado o si
der automatizar la ejecución de los mismos. ZF resulta un poco más complicado de necesitamos que sea compatible con
La instalación se realiza a través de un fi- utilizar que CakePHP y Symfony. Sin embar- PHP4.
chero comprimido que podemos descar- go, es muy estable y cuenta con importan- No cabe duda que para desarrollar apli-
garnos previo registro, siendo este gratuito. tes partners del sector que lo apoyan, co- caciones complejas y que necesitamos
Actualmente la mayoría de las distros de mo por ejemplo IBM y Google. Si nunca he- mantener a lo largo del tiempo, lo mejor es
GNU/Linux no ofrecen paquetes binarios mos trabajado con un framework es reco- utilizar uno de estos frameworks. Quizá la
para la instalación de ZF desde los mismos. mendable utilizar en primer lugar Symfony o curva de aprendizaje nos lleve un poco de
Al igual que las otros dos herramientas CakePHP para familiarizarnos un poco con tiempo, pero veremos cómo compensa en
que hemos repasado, ZF incorpora una se- la terminología y la forma de trabajar. el ahorro posterior. n
rie de scripts para automatizar algunos pro-
cesos, como por ejemplo, el de creación de
Referencias �
la estructura básica de una aplicación. Para
� Sitio web oficial del proyecto Symfony. http://www.symfony-project.org/
� Prácticas cheatsheets en PDF para el desarrollo con Symfony.
http://trac.symfony-project.org/wiki/CheatSheets
� Sitio web de Propel, un ORM para PHP5. http://propel.phpdb.org/trac/
� Capa de abstracción de SGBD para PHP. http://creole.phpdb.org/trac/
� Sitio web del ORM para PHP Doctrine. http://www.doctrine-project.org/
� Web del proyecto Mojavi. http://www.mojavi.org/
� Sitio web oficial del repositorio PEAR. http://pear.php.net/
� Documentación oficial sobre Symfony.
http://www.symfony-project.org/doc/1_2
� Sitio web oficial de CakePHP. http://www.cakephp.org/
� Libro on-line oficial sobre CakePHP. http://book.cakephp.org/
� Sitio web oficial de Zend Framework. http://framework.zend.com/
Figura 7. Sitio web oficial de ZF.

30 Número 104 www.studiopress.es

También podría gustarte