Un espacio para los entusiastas del web

Los Frameworks de PHP agilizan tu trabajo

Publicado el 31 de Julio, 2007

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.

Otros artículos relacionados

Califica esta nota:

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (12 votos, promedio: 3.58 de 5)
Loading ... Loading ...

Comentarios

  1. 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.


  2. 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.



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


  4. 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.


  5. 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.


  6. wiaiaiai

    y cakephp?


  7. 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.


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


  9. 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.


  10. 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?


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

    Chauu


  12. 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!


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


  14. Ariel

    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?


  15. 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.


  16. Fede

    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.


  17. Alejandro Jesús Perazzo

    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/


  18. Juan Velazco

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


  19. Edwin Perez

    Gracias Alejandro por los links de Symfony realmente muy buenos.


  20. Luis Miguel C.

    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


  21. Fede

    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?


  22. Luis

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


  23. Excelente, me ha sido muy util esta info…

    Saludos


  24. 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.


  25. Diego

    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


  26. Rebeca

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


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


  28. Es solo una introduccion, deberia existir uno mas completo.


  29. 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.


  30. 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


  31. Lismary Estrada

    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…


  32. Lismary Estrada

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


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


  34. juan avalos

    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.


  35. Juan Carlos Ch.

    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.


  36. christian rojas

    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.


  37. 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!


  38. 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!


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


  40. Jesús Mena

    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?!


  41. 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)


Deja tu Comentario

Maestros del Web se reserva el derecho de moderación de los comentarios. Evita utilizar palabras soeces, ataques directos, descalificativos, insultos, de lo contrario tu comentario será eliminado.


Sobre el Autor

Damián Pérez Valdés

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

Más artículos de Damián Pérez Valdés

Las Notas en tu correo


Acerca de

Maestros del Web nace cuando intentamos traducir Webmaster al Español. Nacimos orientados al diseño y desarrollo web. Hoy somos un espacio de apoyo para los entusiastas que participan en proyectos en la red.
Leer más de Maestros del Web