¿Por qué usar Symfony?
Empezaremos por 10 razones por las que una empresa debería utilziar Symfony Framework en sus desarrollos de PHP, citando:
- Escalable: Symfony es infinitamente escalable si se disponen de los recursos necesarios. Yahoo utiliza Symfony para programar aplicaciones con 20 millones de usuarios y 12 idiomas ¿de verdad necesitas más?
- Probado: Symfony ha sido probado con éxito durante varios años en aplicaciones muy diferentes. Desde sitios web con millones de usuarios (del.icio.us, Yahoo Bookmarks, Yahoo Answers) hasta otros miles de sitios pequeños y medianos.
- Soporte: Symfony sigue una política de tipo LTS (long term support). Las versiones estables se mantienen durante 3 años sin cambios pero con una continua corrección de los errores conocidos. Tus clientes estarán siempre contentos y a ti no te costará nada hacerlo.
- Licencia: Symfony utiliza una licencia MIT, con la que puedes hacer aplicaciones web comerciales, gratuitas y/o de software libre.
- Compromiso: la empresa que ha creado Symfony no vive del framework, sino de las aplicaciones que hace con él. Esto significa que a ellos les interesa tanto como a tí aspectos como el rendimiento, la buena documentación, el soporte muy largo, etc.
- Código: Desde su primera versión Symfony ha sido creado para PHP 5, desechando la versión PHP 4 (que ha sido declarada obsoleta recientemente). Echa un vistazo a su código fuente y verás lo bien que se puede llegar a programar con PHP.
- Seguro: Se puede controlar hasta el último acceso a la información e incluye por defecto protección contra ataques XSS y CSRF.
- Documentado: se trata del framework PHP mejor documentado: miles de páginas en el wiki oficial, tutoriales de hasta 250 páginas y un libro gratuito de casi 500 páginas. Además, el libro está completamente traducido al español.
- Calidad: su código fuente incluye más de 8.000 pruebas unitarias y funcionales. ¿Vas a jugártela utilizando otro framework con pocas pruebas unitarias o que ni siquiera las utilice?
- Internacionalización: Se pueden crear aplicaciones en varios idiomas. La internacionalización está integrada en el framework, funciona bien, sigue los estándares (XLIFF), es muy completa y está probada en aplicaciones reales.
- La documentación de Zend no es tan extensa como la de Symfony.- Zend tenía su propio ORM, pero se ha dado por vencido y va a implantar Doctrine.- El abandono del ORM própio de Zend fue por falta de "potencia de desarrollo", la comunidad de Symfony es más grande, más fuerte.- Si, en internet todos andamos con el Inglés para arriba y abajo... pero la documentación de Symfony está en varios idiomas, y su comunidad es muy activa.
Todavía no estás convencido? bien, la mejor manera es que analices tus necesidades y te pongas con la documentación de Symfony, el libro está muy bien pero donde más rápido vas a ver su potencia es en su ejemplo práctico Jobeet. Cuéntame tu impresión cuando estés en el 5º capítulo ![]()
Symfony 1.4 estable
Ya tenemos disponible la versión estable de Symfony 1.4, como es de esperar también acompañada de una amplia documentación en varios idiomas en el lanzamiento de la versión estable. En la web de Symfony de habla hispana nos da información al respecto. Y cito de: http://www.symfony.es/2009/12/01/mas-con-symfony-el-libro-definitivo/
La gran novedad es que este libro es el primero que se ha escrito específicamente para los usuarios avanzados de Symfony, por lo que en este libro no te encontrarás la enésima explicación de cómo instalar Symfony o de cómo funciona la arquitectura MVC.
Un framework para dominarlos a todos
Hace ya unos meses comencé un proyecto ambicioso, el crear un framework para el desarrollo de aplicaciones web en php. Una tarea que comenzó en las solitarias noches del hogar, terminó convirtiendose en parte de las tarea de mi jornada laboral. La idea siempre fue facilitar el trabajo, y llegó el momento de ponder poner en marcha a zancadas la idea.
Fue comentado en forosdelweb.com mi intención de desarrollar un framework php y criticado en el sentido de reinventar la rueda, para que hacer algo que ya está hecho. Eso es totalmente cierto, pero las carencias que teníamos eran muy particulares y a veces lo que tenemos que hacer no es "lo de siempre" y el framwork salió a la luz, funcionando en diferentes proyectos.
Aunque en un principio la idea era tener el código licenciado bajo GPL al llevarme la tarea a la jornada laboral perdí el poder de decisión para poder liberar el código y nunca fue publicado en el repositorio. Actualmente el repositrio SVN http://svn.pensandoenred.com/framework tiene una versión antigua ya del motor de plantillas.
La experiencia es y ha sido increible al crear una herramienta de este tipo, el evolucionar el desarrollo junto con su mantenimiento hasta se hace relativamente fácil gracias a que no sólo yo aporté, también mis compañeros fueron una importante ayuda para afinar el desarrollo, técnica y conceptualmente ha sido un trabajo muy enriquecedor. El resultado fue un framework parecido en "grandeza" a codeigniter, y de fácil aprendizaje.
Aunque parece que ya estoy en tono de despedida...
no es así! esta herramienta seguirá su curso y crecerá, pero fue un proyecto gestado en un sitio y que nació en otro lugar pero ahora tiene otro rumbo. En el transcurso del mismo primero atacamos a las necesidades inmediatas y luego lo fuimos adornando pero siempre mirando hacia adelante en cuanto a necesidades y requisitos que serán imposible alcanzar en su totalidad, ya que el tiempo es dinero y no tenemos tanto dinero para ello ![]()
Antes de embarcarnos en la aventura valoré el utilizar symfony como framework, pero es muy grande y complejo. Su aprendizaje es relativamente costoso en comparación con frameworks más pequeños... Pero la potencia de symfony cada vez me abruma más.
La potencia de symfony en cuanto al tratamiento de las url's, de gestión de formularios, la rapidez en el desarrollo de aplicaciones potentes y la gran comunidad hispana que tiene es increíble por no hablar de su extensa documentación. Lo que más me ha gustado de lo que he visto en este framework son las pruebas unitarias y funcionales, algo que en muchas ocasiones en el desarrollo de aplicaciones no se la da la suficiente importancia.
Otros lenguajes de programación son más cuadriculados, pero php... el que lo conoce sabe que es tan maleable...
y no se puede competir contra cientos de cabezas pensantes de una comunidad! donde no sólo uno mismo ve la necesidad, es que la ven todos y la sacan adelante. Otro de los framework que están en la cumbre es Zend Framework y aunque lo he visto por encima me he decantado por Symfony por el momento. Tal vez cuando tenga el control adecuado para decir que conozco bien Symfony igual invierto algo de tiempo en mirar Zend, pero hay mucha documentación de Symfony y me resulta cómodo el aprendizaje así que me parece que será difícil cambiar a Zend el día de mañana. La comunidad symfony es muy activa y es de agradecer en el momento de aprendizaje y sobre todo a tener en cuenta para el futuro.
Pronto comenzaré con una aplicación con este framework y me parece que voy a disfrutar mucho, programar es divertido!
Framework :: Probando la vista
Bien, hasta ahora el código que estaba publicado en el repositorio no era de mucha utilidad si no había un caso de ejemplo para probar el funcionamiento de la vista.
A tener en cuenta para pruebas:
- Document root: html
- Código donde se monta la vista: proyecto/php/portada/portada.php
- Tipo de contenido de pruebas: demo
El resultado de la prueba es un listado de 10 elementos de tipo "demo" con una paginación de 2 páginas, ya que cuando preguntamos por el total, el método devuelve directamente 20. Las clases del tipo de contendo Demo son clases de prueba, todavía falta la definición de como construir los tipos de contenido.
La idea de la vista, es un gestor de plantillas por sustitución de tag omitiendo cualquier tipo de lógica en la propia plantilla. El objetivo es tener un motor de plantillas de fácil uso a la hora de montar pantallas teniendo en cuenta que en la propia plantilla el diseñador no se tendrá que econtrar código alguno que implique lógica. Entendiendo lógica como boucles, condiciones...
Framework :: descargando el código de SVN
Para descargar el código del subversion tenemos que utilizar un cliente de subversion
"me he lucido". Tirando de la blogosfera podemos obtener manuales de como utiluzar diferentes clientes de subversion.
- TortoiseSVN en Windows
- Subclipse para usarlo en eclipse
- SscriptSVN en Gnome
También me ha parecido de interés el exponer una explicación del servicio de Subversion para aquellos que no lo conozcan. Este servicio sirve para tener un control de versiones y desarrollar en equipo. Para esto podemos acceder al blog de Manuel Recena que en su post de Algunas ideas de como usar subversion lo describe con detalle.
Si tenéis algún problema para la descarga avisarme para poder solucionarlo. El proyecto está en modo lectura para todos y para poder participar hace falta una cuenta de usuario, por lo que no podréis realizar un commit si no os he dado de alta.
Feliz descarga! ![]()
Framework :: El comienzo
Hace ya un tiempo que llevo dandole vueltas a la idea de comenzar a desarrollar un framework para desarrollar en PHP. Es cierto que en internet existen para escoger unos cuantos, unos más conocidos que otros y un sin fin de clases para utilizar en los desarrollos de cada uno.
Aunque dispongo de algo más de código que el expuesto en el respositorio de subversion que he montado para el proyecto tengo que "limpiarlo" un poco para subirlo al repositorio.
Ahora tengo un gestor de plantillas, cuya idea principal es el montar la página gestionando formularios, paginaciones y demás elementos que vaya incorporando al desarrollo. Ahora será dificil poder comprobar el funcionamiento de las clases a no ser que le dediques un poco de tiempo a leer el código pero en cuanto pueda tener código suficiente para que se pueda ir evaluando pasará un tiempecito ^_^ esperemos que no mucho.
Un punto importante en el proyecto es la documentación y en unos dias montaré un wiki para ir documentando las clases publicadas en el repositorio, por lo que se intentará mantener la publicación de documentación con la publicación de código nuevo.
El proyecto es ambicioso para una sola persona pero sin tener la obligación de alcanzar una fecha de fin no hay presión ![]()
Una de las asignaturas pendientes para este proyecto es licenciarlo bajo GPL, pero aunque ahora el código no haga referencia a esta licencia así estará en el momento que me sea posible.