Los Frameworks de PHP agilizan tu trabajo

Aprende más sobre este tema con la guía Zend, la guia Symfony y te recomendamos que veas “Frameworks PHP hispanos”.

Los Frameworks ayudan en el desarrollo de software, proporcionan una estructura definida la cual ayuda a crear aplicaciones con mayor rapidez. Ayuda a la hora de realizar el mantenimiento del sitio gracias a la organización durante el desarrollo de la aplicación.

Los Frameworks son desarrollados con el objetivo de brindarles a los programadores y diseñadores una mejor organización y estructura a sus proyectos.

Se utiliza la Programación Orientada a Objetos (POO), permitiendo la reutilización de nuestro código. A continuación las características de algunos de los Frameworks para PHP más usados.

Zend Frameworks

El Zend Frameworks es simple, no necesita instalación especial, requiere PHP 5 e incorpora el patrón MVC.

Se debe descargar y copiarlo hacia nuestro servidor local, veamos a través de un pequeño ejemplo cómo podemos crear un lector de RSS. Los ficheros que creemos podemos copiarlos dentro del directorio “library”.

<?php
// Componente requerido
require_once 'Zend/Feed.php';

// Incluimos la dirección de nuestro fichero rss que deseamos importar
$feed = Zend_Feed::import('http://localhost/rss.php');

// Se recorrerán todos los item del fichero, mostrando el titulo y el enlace 
foreach ($feed->items as $item) {
    echo "<p>" . $item->title() . "<br />";
    echo $item->link()  . "</p>";
}
?>

Symfony

Diseñado con el objetivo de optimizar la creación de las aplicaciones web, con el uso de sus características. Posee una librería de clases que permiten reducir el tiempo de desarrollo.

Symfony está desarrollado en PHP5, se puede utilizar en plataformas *nix (Unix, Linux) y Windows. Requiere de una instalación, configuración y líneas de comando, incorpora el patrón MVC, soporta AJAX, plantillas y un gran número de bases de datos.

Luego de descargar, debemos desempaquetar hacia un directorio dentro de nuestro servidor web. Puede configurar el archivo “symfony.bat” e introducir la ruta completa del archivo “php.exe” en la línea 34.

set PHP_COMMAND=c:/xampp/xampp/php/php.exe

Si nos encontramos en el directorio “sf_sandbox” podemos ir a las líneas de comando y conocer la versión del framework: symfony -V. Podemos verificar la creación de nuestro proyecto introduciendo en el navegador, por ejemplo: http://localhost/sf_sandbox/web/frontend_dev.php

La estructura de los directorios es:

sf_sandbox/ // directorio del proyecto 
 apps/      // archivos de la aplicación 
 batch/     // procesos
 cache/     // cache 
 config/    // configuración
 data/      // archivos y códigos de datos 
 doc/       // documentación 
 lib/       // librerías y códigos de proposito general
 log/       // archivos de log 
 plugins/   // plugins 
 test/      // tests 
 web/       // directorio público

Si deseamos crear un weblog debemos crear el archivo “schema.yml” en el directorio “sf_sandbox/config/”. Después de haberlo creado podemos usar las siguientes líneas de comando dentro del directorio “sf_sandbox/”:

  • symfony propel-generate-crud frontend post Post : crear y listar Post.
  • symfony propel-generate-crud frontend comment Comment : crear y listar comentarios.
  • symfony clear-cache : limpiar la cache.

Los modulos serán creados en “sf_sandbox\apps\frontend\modules\”. Podemos ver el resultado:

  • http://localhost/sf_sandbox/web/frontend_dev.php/post
  • http://localhost/sf_sandbox/web/frontend_dev.php/comment

Se puede acceder a los archivos y modificar las plantillas a nuestro gusto.

Seagull

El framework Seagull, nos permite realizar una programación modular, posee un Sistema de Gestión de Contenidos (CMS).

Entre sus características de encuentran su compatibilidad con PHP 4 y PHP 5, ORM integrado, incorpora el patrón MVC, uso de templates, soporte para múltiples bases de datos, validación de datos, alto nivel de configuración, autentificación, integración de librerías PEAR.

Debemos descargar el framework, luego descomprimirlo hacia un directorio dentro de nuestro servidor web. Luego introducimos la dirección en nuestro navegador para realizar su instalación. Ejemplo: http://localhost/seagull/www/.

Debemos completar los 6 pasos siguientes:

  • Aceptar la licencia
  • Autorización
  • Debemos crear en el directorio el archivo “AUTH.txt” que contenga el código generado o descargarlo en “seagull/”. Si se crea correctamente podremos continuar al siguiente paso.
  • Detección: aquí se detectará los módulos disponibles, así como la configuración y versión de PHP.
  • Conexión con las bases de datos: debemos configurar los datos necesarios para realizar la conexión con el servidor de base de datos.
  • Configuración de la base de datos: introducir el nombre de la base de datos. Se puede utilizar una existente.
  • Creación del Usuario Administrador: se creará la cuenta de usuario que utilizaremos para administrar a Seagull Framework.

Luego de Finalizar su instalación podemos crear contenidos visitando http://localhost/ seagull/www/ e introduciendo el usuario y clave de administración.

Prado

Prado está basado en componentes eventos con el objetivo de acelerar el desarrollo de aplicaciones web usando PHP 5.

El concepto del desarrollo de aplicaciones en Prado es diferente, se utilizan componentes, eventos y propiedades en vez de procedimientos, URL y parámetros.

Este Framework combina especificaciones en un archivo XML, plantillas HTML y una clase PHP. Prado, cuenta con soporte para AJAX, validación, autentificación, plantillas, múltiples bases de datos.

Entre los beneficios que podemos encontrar para el desarrollo de aplicaciones web se encuentran:

  • Reutilización: los códigos y componentes pueden ser reutilizados.
  • Fácil uso: la creación y uso de componentes es fácil.
  • Funcionamiento: utiliza una técnica de caché para asegurar el funcionamiento de aplicaciones basadas en el.
  • Integración: permite la separación del contenido y la presentación.

Podemos descargar y descomprimir Prado en un directorio, luego acceder al siguiente demo.

Hello World:

Esta aplicación cuenta con los archivos index.php, Home.page y Home.php, organizados con la siguiente estructura, la cual puede ser modificada:

helloword.jpg

  • assets : almacena archivos privados publicados.
  • protected: aquí se almacenarán los archivos que serán usados.
  • runtime: se almacena la información runtime de la aplicación, así como su estado, este directorio debe tener acceso de escritura por el servidor web.
  • pages: aquí se almacenan todas las páginas de Prado.

Descripción del contenido de los archivos:

Index.php: código de entrada para la aplicación en Prado. Este fichero es necesario para todas las aplicaciones. El contenido del archivo es el siguiente:

require_once('path/to/prado.php'); // incluye el código de prado
$application=new TApplication; // se crea una instancia de la aplicación PRADO
$application->run(); // ejecuta la aplicación

Home.page: Plantilla de la página. La misma describe la posición de los componentes. Aquí se utilizan los componentes TForm y TButton.

<html>
<head>
<title>Hello World Demo- Prado</title>
</head>
<body>
<com:TForm>
<com:TButton Text="Click me" OnClick="buttonClicked" />
</com:TForm>
</body>
</html>

Home.php: clase para la página Home.page, contiene los métodos para el evento OnClick del botón.

class Home extends TPage
{
    public function buttonClicked($sender,$param)
    {
        $sender->Text="Hello World!";
    }
}

En el ejemplo anterior tendrémos un botón con el texto “Click me” al oprimirlo cambiará el texto por “Hello World!”. Podemos ver los demos que incluye este framework http://localhost//prado/demos/.

Si presentamos algún problema podemos verificar sus requerimientos http://localhost/prado/requirements/index.php.

Espera la segunda parte de este artículo sobre los Frameworks de PHP, en donde hablaremos sobre CodeIgniter, CakePHP, PHP on TRAX y entraremos en detalle sobre MVC.

Damián Pérez Valdés
Webmaster, Administrador de Sistemas, con experiencia en desarrollo web y de aplicaciones.

Muy bueno el artículo. Pero, no veo que este incluido el framework CakePHP, que al parecer, tambien es muy bueno y tiene muchas características interesantes.

Un vínculo muy bueno para ver las diferencias entre los frameworks de desarrollo más importantes es:

http://www.phpit.net/article/ten-different-php-frameworks/

Siempre el desarrollo con un framewok hace que nuestro desarrollo se aminore, pero que pasa cuando queremos que talvez para proyectos que puedan llegar a un potencial mucho mayor el uso de tal o cual herramienta puede hacer dificil una migración.

Juan Manuel, como verás en el último párrafo, hay otros Frameworks que mencionar incluyendo Cake PHP. Así que te invito a que estes pendiente de la segunda parte del artículo para que nos déjes tus comentarios. Saludos.

Muy buen articulo.

Excelente artículo, nada más a esperar la segunda parte :)

Me ha gustado el artículo, me ha puesto al día que hace un tiempo que estoy desconectado de los frameworks open source de PHP.

Esperaré pendiente a la segunda parte.

Me ha gustado el artículo, me ha puesto al día que hace un tiempo que estoy desconectado de los frameworks open source de PHP.

Estaré pendiente a la segunda parte.

wiaiaiai
31/07/2007

y cakephp?

Los frameworks más utilizados de PHP con mucha diferencia son CakePHP y Symfony.

Para el que le pueda interesar, Yahoo ha elegido Symfony como su framework oficial. La aplicación Yahoo Bookmarks está construida completamente con Symfony y las aplicaciones Yahoo Answers y del.icio.us tienen partes que se están rehaciendo con Symfony.

[...] Los invito a leer más: Maestros del Web >> Los Frameworks de PHP agilizan tu trabajo [...]

Faltan varios frameworks importantes, hablando de TemplatePower, XAJAX, etc.

Interesante el artículo, siempre voy a tener presente la elección de un Framework dependiendo de la complejidad del trabajo, y me encanta que hayan más de los que pensaba (no conocia al Prado).
En fin, me gustaría ver el siguiente artículo, ya que hablarán de los Frameworks que mas he venido trabajando: CodeIgniter y el CakePHP.

Lo que agilizan el trabajo es relativo. Primero hay que aprender todo el framework antes de acelerar el trabajo. Hasta ahora, he encontrado un poco complicados de usar estos frameworks… de estos que se han mencionado, ¿cual es más fácil de digerir?

excelente articulo, en el siguiente espero no olvides al buen Code Igniter.

Chauu

Me parece un articulo interesante pero no suficiente.
Como ya dijeron faltan CakePHP y por supuesto mi favorito: Code Igniter.
http://www.codeigniter.com/
CI es muy flexible, facil de usar y rápido. Trabaja con PHP4. Utiliza MVC pero no obliga a seguir un método de programación. Es algo asi como: puedes programar con Modelo-Vista-Controlador, pero si quieres olvidate del modelo, incluso de las vistas y usa solo el controlador…
Además está claramente documentado y es libre. En los demos hacen un blog en 20 minutos!

[...] maestrosdelweb, han escrito dos artículos Los Frameworks de PHP agilizan tu trabajo (y [...]

Esteban, hoy se ha publicado la segunda parte del artículo en donde encontrarás la información que mencionas, esperamos tus comentarios.

[...] Los Frameworks de PHP agilizan tu trabajo [...]

Ariel
14/08/2007

Me gusto mucho..me gustaria que me recomendaran un framework…esoty investigando..y e he puesto a ver los q hay de AJAX…cual me recomiendan?

Hola Ariel, a mi me gusta CodeIgniter, hasta ahora no tiene soporte para AJAX, si necesitas AJAX podrias usar CakePHP, tambien te recomiendo que pruebes Prado me parece interesante los componentes y propiedades que incluye aunque quizas sea dificil dominarlo, y puede ser un poco lento.

Fede
9/09/2007

La versión 4 de PHP lleva mas de 8 años y es completamente obsoleto. Por respeto a la comunidad que tanto esta luchando para que la gente la deje de usar, te pido que no hagas referencia a frameworks antiguas y obsoletas como Cake o CodeIgniter. El código es terriblemente malo, inseguro y no aprovecha todo lo que PHP 5 tiene para ofrecer… desde hace ya unos cuantos años.

    Xeonss
    5/04/2010

    CakePHP obsoleto ??????
    Hay que informarse un poco mejor amigo Fede. CakePHP NO SOLO trabaja perfectamente con PHP5, sino que ademas, es de los unicos que tiene compatibilidad con PHP4, algo muy interesante para migrar proyectos y poder utilizar librerias propias que tenemos guardadas….

Alejandro Jesús Perazzo
10/09/2007

Estoy empezando con Symfony y me ha gustado bastante, aparte tiene un completo manual en español y gratis.
http://www.librosweb.es/symfony/index.html
una comunidad en google en español:
http://groups.google.com/group/symfony-es
pagina de symfony en español
http://www.symfony.es/
pagina oficial de symfony en ingles
http://www.symfony-project.com/

    Me parece excelente la informacion que acabas de ofrecer en tu comentario, me a inspirado en trabajar con este framework, un gran saludo.

Juan Velazco
11/09/2007

Que hay de Kumbia? http://www.kumbia.org

Edwin Perez
20/09/2007

Gracias Alejandro por los links de Symfony realmente muy buenos.

Luis Miguel C.
23/09/2007

Pienso igual que Juan Velazco, KUMBIA me parece magnifico … no lo dejeis de lado, ya que esta totalmente en ESPAÑOL.

Hay que potenciar lo nuestro.

Saludos

Fede
2/10/2007

PHP anuncio hace rato que deja de mantener la versión 4, por lo tanto, cualquier desarrollador que utiliza una versión obsoleta de un lenguaje de programación, no se lo puede considerar serio ni responsable. Lo siento amigos, pero Cake y CodeIgniter fueron desarrollados con un lenguaje que hoy es obsoleto, tan difícil es de entender?

Luis
4/10/2007

Excelente Damian! muy buen aporte y punto de vista. Desde Paraguay! Un fuerte abrazo!

Excelente, me ha sido muy util esta info…

Saludos

Puestos a comparar (aunque no sea entre PHP), ¿qué os parece Ruby on Rails (RoR)? ¿Alguien lo ha utilizado? ¿Que nos haga una pequeña reseña comparado con alguno de PHP?

Yo estoy mirando algo de Ruby, y la verdad es que es la leche.

Saludos.

[...] es el modelo MVC. Sobre este modelo existe una serie de implementaciones como Ruby on Rails o Cake PHP. La ventaja fundamental del modelo es la separación de la lógica de programación en tres partes: [...]

Diego
29/10/2007

hola estoy haciendo mi tesis en php es un sistema de avaluos y catastros del sector rural de un municipio y necesito saber una tecnologia q me permita utilizar con php

Rebeca
6/11/2007

Es una forma de educarnos en la programación, yo vi prado y les aconsejo

Como introduccion, bien pero se queda un muy corto de como empezar a utilizar mas de lleno el prado.

Es solo una introduccion, deberia existir uno mas completo.

El uso de frameworks como estos es un riesgo para el desarrollo. Depender de terceros para lo que constituye el “core” de nuestra aplicación no es recomendable.
Pongamos un ejemplo: Code Igniter esta basado en PHP4. PHP4 se descontinuara dentro de un més. Así que quien haya desarrolado su aplicación basandose en CodeIgniter se encontrará que su aplicación utiliza software descontinuado y que no está en su mano sustituirlo por PHP5, pues deberá esperar a que quien desarolla CodeIgniter lo adapten a la nueva versión.
Recomiendo encarecidamente el uso de frameworks solo para casos puntuales y siempre para solucionar problemas que no tengan solución de forma estándar.

Luis por la misma regla de tres, tampoco deberían utilizarse lenguajes como PHP, mejor ensamblador, y desarrollaríamos nuestras propias bases de datos y librerías para todo.

Si se tiene capacidad para desarrollar un framework, adelante es un buen ejercicio, aunque son pocos los elegidos. Si no utilizar un framework existente, por lo menos producirá un código de cierta calidad. Mantener las aplicaciones en todos sus componentes es responsabilidad de sus creadores.

Siguiendo tu razonamiento cada programador estaría reinventado la rueda constantemente, no parece la mejor forma de avanzar.

Saludos
Jose

Lismary Estrada
25/02/2008

hola..estoy programando un portal utilizando el framework prado..necesito que me hablen mas de el, por ejemplo las dificultades que puede presentar, los disimiles errores que el mismo puede presentar…

Lismary Estrada
25/02/2008

necesito una comparacion bastante sustentada entre el prado y el Symfony..

Un Framework interesante es PHP4ECore, pueden descargarlo desde php4e.codeman.cl

juan avalos
7/05/2008

Yo estoy de acuerdo con Jose Valle, no deberiamos de reinventar la rueda si tenemos herramientas que estan fundamentadas en la reutilizacion como es el caso de los framworks aunque a algunos les falta aun mucha documentacion para ser mas accesibles.
La orientacion a objetos por ejemplo se concebió con ese fin, y aun existen muchos programadores que no la utilisan como debe ser y seguimos reinventando cosas y creando mil formularios siempre con el mismo fin.

[...] un Framework PHP -Josh [...]

Juan Carlos Ch.
8/11/2008

Este articulo esta super bueno, me ayudo a elegir un tema de tesis, pero acabo de enterarme de otro framework de PHP, llamado Kumbia que esta mucho mejor, me gustaria que profundisen sobre ese tema.

christian rojas
24/11/2008

Saludos a todos:
Tengo algunos años desarrollando aplicaciones web, pero muchos conpañeros que dejaron sus comentarios se quedaron en php4(programacion estructurada) y otros dieron el gran salto a php5(programacion orientada a objetos) igual que yo, ya es hora de abrir mas nuestras mentas.

Por cierto aqui les dejo otro framework P4A (Php for Applications)
Php for Applications
Creador del Framework

Fuerte abrazo desde Ecuador.

    Coincido contigo Christian, la POO lo hace todo más claro y nos permite crear aplicaciones más legibles, intuitivas y reusables… sobre todo por características como la herencia y el polimorfismo.

Buenas,

Pues yo estoy aprendiendo a utilizar CakePHP y me gusta mucho. Estoy documentando mi proceso de aprendizaje en http://www.tutorialcakephp.wordpress.com, por si hay alguien interesado. Un saludo!

[...] Siguiendo con la lista de los Frameworks de PHP más utilizados, haré una descripción un poco más detallada sobre CodeIgniter, CakePHP, PHP on TRAX, WACT y ZooP Framework, que complementa el primer artículo. [...]

[...] frameworks simplifican el desarrollo de las aplicaciones mediante la automatización de muchas de las tareas [...]

[...] Frameworks PHP + segunda parte Something to say? [...]

Buenas, estoy desarrollando un pequeño framework que implementa MVC/ORM e integra AJAX que esta tomando forma: Yupp PHP Framework, dejo los links, saludos.

http://www.simplewebportal.net/host/1018.htm
http://groups.google.com/group/yuppframeworkphp

Si lo prueban, háganme llegar sus comentarios! gracias!

HOLA ME PODRIAN AYUDAR PARA SABER LA RELACION ENTRE JAVA WSDP Y framework O SE REFIERE A LO MISMO OJALA QUE ME PUEDAN AYUDAR

Jesús Mena
19/05/2009

Te digo lo que quiero decir en inglés porque me parece que necesitas practicar:

It’s “Framework”, not “Frameworks” since that is the plural. Bit of a schoolboy error really. For those of you who want to label frameworks as “insecure” or “badly written” at least substantiate what you say with examples yeah!?

Finally:

Miriam, de que coño hablas tía?!

Podrías tomar en cuanta en una próxima entrega de una lista de framework a KumbiaPHP pueden ver los Benchamrk de KumbiaPHP vs (Yii, CodeIgniter, Kohana, Zend, Prado, CakePHP, Symfony)

Excelente trabajo muy serio y actualizado. Para aquellos que no saben o quieren iniciarse con un framework php

Les dejo un enlace para que conozcan SIU-Toba un framework excelnte quiza el mejor para desarrollo de aplicaciones web en PHP.

http://senaconelsoftware.blogspot.com/2009/08/framework-de-desarrollo-web-siu-toba.html

sandra
16/12/2009

Exelente trabajo, Sinfony el mejor.
Aca los dejo algunos Frameworks que no aparecen.
Achievo ATK
Akelos Framework
AModules3
Ambivalence
Aukyla PHP Framework
Binarycloud
Biscuit
bitweaver
Booby
Cake
Castor
Cgiapp
CodeIgniter
Copix
Core Enterprise PHP
EZ Publish
FastFrame
Fusebox
FuseLogic
Konstrukt
Kumbia
Krysalis
Inek
InterJinn
Ismo
Limb PHP Web Application Framework
LogiCreate
Medusa
Mojavi
Navigator
Nexista
P4A
PHP on Trax
PHPulse
PhpMVC
Phrame
Popoon
Prado
Qcodo
rwfphp
Seagull
Sitellite
SIU-Toba
SolarPHP
sQeletor
Studs
struts4php
TaniPHP
Tigermouse
Web Application Component Toolkit
web.framework
Wolfden CMF
Zephyr Framework
ZNF
Zoop Framework

Hola, estoy buscando un framework para programar MVC con php, me recomendaron Zend framework, pero se me complica mucho porque la documentacion aun esta su mayoria en ingles. pocos ejemplos pero si es muy prometedor, pero por el momento para terminar un sistema rapido siento que no es el ideal hasta que lo logre dominar bien. El synfony que tal esta, tengo un proyecto para hacer un sistema de una constructora, altas, bajas, control de inventario, control de nominas por quincena, mes, lista de raya, impresion de reportes, nominas, etc etc. Que framework me recomiendan para agilizar esta tarea?

Un gran saludo y buen aporte.

Me ha gustado el artículo, pero creo en la creación de una estructura propia para cada proyecto que abordemos

Jorge
2/10/2010

Hola,

a mi parecer, CakePHP es el mejor framework de desarrollo web en PHP que existe.

Jorge Naula

caca
2/10/2010

PICATE EL CULO HIJO DE PUTA !!

Muy buen post… alguien sabe de algun framework o librería para trabajar con MySQL?

[...] información: Maestros del web | Mundo Geek por Alejandro [...]

[...] MaestrosDelWeb [+] Compartir • Twitter • StumbleUpon • Digg • Delicious • [...]

2958