<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2575613759940960297</id><updated>2011-04-21T15:02:55.450-07:00</updated><title type='text'>Symfony La Primera Experiencia</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://symfonylaprimeraexperiencia.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2575613759940960297/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://symfonylaprimeraexperiencia.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Pedro C</name><uri>http://www.blogger.com/profile/16002497586687131524</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2575613759940960297.post-8234889064645449328</id><published>2008-08-11T22:38:00.000-07:00</published><updated>2008-08-11T23:13:39.645-07:00</updated><title type='text'>Symfony La Primera Experiencia</title><content type='html'>En este blog encontraras un relato de como fue nuestra primera experiencia con symfony la presentación hecha sobre los principales rasgos de symfony y un video tutorial de como instalar y crear la aplicación, la encontraras en los siguientes links:&lt;br /&gt;&lt;a href="http://es.geocities.com/yeice8/Symfony.ppt"&gt;http://es.geocities.com/yeice8/Symfony.ppt&lt;/a&gt;&lt;br /&gt;&lt;a href="http://es.geocities.com/yeice8/SymfonyAplication1.zip"&gt;http://es.geocities.com/yeice8/SymfonyAplication1.zip&lt;/a&gt;&lt;br /&gt;&lt;a href="http://es.geocities.com/yeice8/SymfonyAplication2.zip"&gt;http://es.geocities.com/yeice8/SymfonyAplication2.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Todo empezó como una simple tarea de clase un 15 de julio de 2008… teníamos una exposición y necesitábamos  decidirnos por  un framework  para exponer… casi sin pensarlo y luego de deliberarlo algunos minutos  nuestros ojos se dirigieron hacia algo que capturo nuestra atención, allí estaba “Simfony”, mas no sabíamos a lo realmente a que nos enfrentábamos… tras unos cuantos días de postergar nuestro trabajo empezamos nuestra búsqueda de información y fue como deambulando en la Web encontramos lo que sería nuestro tutor a lo largo de este camino…. “Symfony 1.X La Guia Definitiva”[1], la cual es referenciada  en muchos de los foros, escrita por Fabien Potencier y Francois Zaninotto el creado del Framework… quienes nos presentaron a Symfony con la siguiente definición… “Symfony es un completo framework diseñado para optimizar,  el desarrollo de las aplicaciones web. Separa la lógica de negocio, la lógica de servidor y la presentación de la aplicación web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicación web compleja. Además, automatiza las tareas más comunes, permitiendo al desarrollador dedicarse por completo a los aspectos específicos de cada aplicación. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicación web.”… un corta definición para lo inmenso y funcional de este Framework… mientras mas leíamos nos dábamos cuenta de las grandes funcionalidades que este ofrecía a los desarrolladores para la construcción de aplicaciones Web, permitiéndole centrar su trabajo en la lógica del negocio, aplicando los mejores  patrones de diseño y generando grandes partes del código como ayuda en la agilización de la construcción de código, de forma tal que  desarrollador pueda contar con una excelente base para empezar el desarrollo de una aplicación Web.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Nuestra experiencia con Symfony…&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Al principio cuando comenzamos  a buscar información acerca del framework no nos animó mucho la idea de que todo debía hacerse mediante una consola de comandos, sin embargo el hecho de que este framework fuera totalmente gratuito hizo que nuestros intereses aumentaran un poco más, pues el aprender de una nueva herramienta  nos daría una opción diferente en el futuro a la hora de construir un aplicación, empleándola  sin la preocupación del costo de una licencia de una herramienta propietaria.&lt;br /&gt;Fue reconfortante encontrar una  excelente documentación,  tiempo valioso que  se han tomado los desarrolladores en  generar la documentación de cada una de las versiones principales de Symfony  la 1.0 y la 1.1.&lt;br /&gt;&lt;br /&gt;Basándonos en la “Symfony 1.X La Guia Definitiva”  fue que logramos realizar la instalación de Symfony en Mandriva 2008 haciendo uso de Pear que tal como lo dice el manual, es la manera más profesional de  realizar dicha instalación… como toda herramienta lo importante es empezar y fue así que leyendo la parte referente a la instalación, nos dimos cuenta que lo que habíamos descargado y sobre lo que habíamos realizado algunas pruebas al principio no era más que un entorno de pruebas...&lt;br /&gt;La instalación del framework la realizamos mediante los siguientes comandos:&lt;br /&gt;&lt;br /&gt;        #pear channel-discover pear.symfony-project.com&lt;br /&gt;        #pear install symfony/symfony&lt;br /&gt;&lt;br /&gt;Superado el impase una vez instalado el framework, comenzamos  a seguir los ejemplos de la guía en los cuales se generan proyectos, aplicaciones, se adicionan módulos etc. &lt;br /&gt;&lt;br /&gt;En nuestro camino empezamos a descubrir la grandes funcionalidades de Symfony… y  valla  sorpresa la que nos  llevamos cuando nos dimos cuenta de que Symfony obliga al desarrollador a usar por lo menos el patrón MVC, además de que en la guía hay una sección dedicada al uso de un sistema de control de versiones con el cual ya hemos trabajado y conocemos los beneficios que  esto le da a un desarrollador; al final hasta el mismo manual implícitamente inculca al programador a aplicar buenas prácticas de programación.&lt;br /&gt;Después de instalar Symfony  nos hallamos con problemas  ya que al crear una aplicación como la del entorno de pruebas, realizamos   un despliegue de la página principal dándonos  cuenta de que nos publicaba el mismo texto, pero ya no nos  visualizaba la pagina con la hoja de estilo, después de tratar y tratar definitivamente no encontramos el error, nos faltaba experiencia así que terminamos por resignarnos y continuar nuestra guía.&lt;br /&gt;&lt;br /&gt;Aparte de leer la guía definitiva, decidimos consultar en la página principal de Symfony &lt;a href="http://www.symfony.es/"&gt;www.symfony.es&lt;/a&gt;,  quien nos brindo   un tutorial de cómo construir  un mini wiki en 20 minutos,  desafortunadamente  este  estaba basado en Symfony 1.0 y algunos de los módulos de los cuales requería  no eran compatibles con la versión 1.1 (Versión que habíamos actualizado unas horas antes) y como en el momento aun no se tenía la suficiente experiencia con el framework no logramos corregir estos errores, pues este tipo de aplicaciones mediante symfony son fáciles de desarrollar integrando al proyecto módulos que son generados por Symfony automáticamente.&lt;br /&gt;&lt;br /&gt;Al final  resolvimos  hacer una aplicación de prueba tomando como referencia un tutorial que hacía uso de una base de datos y mediante el  framework  generaban el modulo que hace toda la gestión de los registros en dicha base de datos. Así que construimos con  cuidado  la especificación del archivo schema.yml en el cual se define la estructura de las tablas de la base de datos y dejamos que symfony se encargara de generar la aplicación con la que se gestiona esta información.&lt;br /&gt;&lt;br /&gt;Para lo anterior el procedimiento fue el siguiente:&lt;br /&gt;        #mkdir miproyecto             //Creamos un directorio&lt;br /&gt;        #cd miproyecto                  //Entramos al directorio&lt;br /&gt;        #symfony generate:project direcctorio  //Generamos el proyecto&lt;br /&gt;        #symfony generate:app frontend         //Creamos una aplicación&lt;br /&gt;        -&gt;En este punto definimos el archivo schema.yml asi:&lt;br /&gt;///////////////////Archivo schema.yml////////////////&lt;br /&gt;propel:&lt;br /&gt;  contacto:&lt;br /&gt;    _attributes: { phpName: Contacto }&lt;br /&gt;    id:&lt;br /&gt;    nombre:      varchar(25)&lt;br /&gt;    apellido:      varchar(25)&lt;br /&gt;    email:      varchar(60)&lt;br /&gt;    celular:      varchar(25)&lt;br /&gt;    telefono:      varchar(25)&lt;br /&gt;    direccion:   longvarchar&lt;br /&gt;&lt;br /&gt;        #symfony propel:build-model       //Generamos las clases del                                                         //modelo que necesita el ORM&lt;br /&gt;&lt;br /&gt;        #symfony propel:build-sql           //Generamos el archivo                               //lib.model.schema.sql para generar la base de datos&lt;br /&gt;&lt;br /&gt;        #mysql admin -u root -p create directorio  //Creamos en mysql la                                                   //base de datos direcctorio&lt;br /&gt;        #mysql -u root direcctorio &lt; data/sql/lib.model.schema.sql&lt;br /&gt;                                       //Creamos las tablas de la base de datos&lt;br /&gt;       &lt;br /&gt;#symfony configure:database "mysql://usuario:password@localhost/directorio"&lt;br /&gt;                //Configuramos el acceso de symfony a la base de datos&lt;br /&gt;&lt;br /&gt;        #symfony propel:init-admin frontend contacto Contacto&lt;br /&gt;                //hacemos que symfony agrege a frontend el modulo de                         //administracion de los contactos en la base de datos&lt;br /&gt;&lt;br /&gt;Aunque la aplicación no corrió al principio por errores humanos fue fácil depurar los errores usando el modo de depuración que genera Symfony en cada proyecto.&lt;br /&gt;Al final después de muchos contratiempos logramos hacer una aplicación Web que gestiona contactos en menos de 10 minutos…&lt;br /&gt;&lt;br /&gt;Estos son algunas imágenes  de nuestra aplicación…&lt;br /&gt; &lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5233502776286389730" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_2uLsW9yPjKQ/SKEjC_eSJeI/AAAAAAAAAAM/Fx7ihIXjtJg/s320/Dibujo.jpg" border="0" /&gt;&lt;br /&gt;Esta es la página a la cual se puede acceder una vez se ha creado un proyecto&lt;br /&gt;&lt;br /&gt;Las siguientes imágenes son de la aplicación que genero symfony para la gestión de la base de datos de contactos que hicimos&lt;img id="BLOGGER_PHOTO_ID_5233504024182690978" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_2uLsW9yPjKQ/SKEkLoP8lKI/AAAAAAAAAAU/neOS8lnlAws/s320/Dibujo2.jpg" border="0" /&gt;&lt;br /&gt;Listar contactos&lt;br /&gt; &lt;img id="BLOGGER_PHOTO_ID_5233504028864619170" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_2uLsW9yPjKQ/SKEkL5sNIqI/AAAAAAAAAAc/zdrNxU-w7x8/s320/Dibujo3.jpg" border="0" /&gt;&lt;br /&gt;Adicionar contacto, que es la misma ventana de modificar contacto&lt;img id="BLOGGER_PHOTO_ID_5233504028447729986" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_2uLsW9yPjKQ/SKEkL4Iz6UI/AAAAAAAAAAk/jzO8vvsQq6E/s320/Dibujo4.jpg" border="0" /&gt;&lt;br /&gt;Listar contactos con el nuevo contacto&lt;br /&gt; &lt;img id="BLOGGER_PHOTO_ID_5233504031287812322" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_2uLsW9yPjKQ/SKEkMCt8IOI/AAAAAAAAAAs/a7RuAeg8IY4/s320/Dibujo5.jpg" border="0" /&gt; &lt;p align="justify"&gt;&lt;br /&gt;Eliminar un contacto, la eliminación se hace desde editar contacto&lt;br /&gt;&lt;br /&gt;Definitivamente el asombro de la potencia de este framework y sus servicios no acaba…pero  es muy  importante destacar que es un framework para construir aplicaciones realmente grandes que manejen complejas lógicas de negocio … como dijo el ing. Libardo Pantoja en una de sus clases… utilizar Symfony  para una aplicación de 5 o 10 páginas diferentes y accesos  sencillos a bases de datos es “como tener un helicóptero para ir a la universidad…” pues según la guía definitiva la única ventaja que se lograra para aplicaciones sencillas es “ utilizar objetos y el modelo MVC (Modelo Vista Controlador) que en últimas solo  va a ralentizar el desarrollo del  proyecto.”&lt;br /&gt;&lt;br /&gt;Y por último ¿por que utilizar Symfony?&lt;br /&gt;&lt;br /&gt;Symfony es una gran herramienta de desarrollo, es sencilla de usar pero lo suficientemente potente para adaptarse a casos muy complejos. &lt;br /&gt;Symfony te enseña a construir aplicaciones con las mejores prácticas de diseño, y la aplicación de patrones para la Web.&lt;br /&gt;Incentiva la buena documentación de código por medio de la herramienta phpDocumentor, la cual nos permite construir código legible aplicando buenas prácticas de programación.&lt;br /&gt;Symfony nos provee de una validación automatizada de formularios y relleno automático de datos, lo que nos asegura la obtención de datos correctos de forma tal que nos evite trabajo en cuanto a seguridad de datos de refiere.&lt;br /&gt;Etc.&lt;br /&gt;&lt;br /&gt;Monica Acosta&lt;br /&gt;Yeison Ceballos&lt;br /&gt;Carlos Andrés Rodallega&lt;br /&gt; &lt;/p&gt;&lt;p align="justify"&gt;Link Relacionados&lt;/p&gt;&lt;p align="justify"&gt;[1]&lt;a href="http://www.librosweb.es/symfony_1_1/pdf/symfony_1_1_guia_definitiva.pdf"&gt;http://www.librosweb.es/symfony_1_1/pdf/symfony_1_1_guia_definitiva.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2575613759940960297-8234889064645449328?l=symfonylaprimeraexperiencia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symfonylaprimeraexperiencia.blogspot.com/feeds/8234889064645449328/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2575613759940960297&amp;postID=8234889064645449328' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2575613759940960297/posts/default/8234889064645449328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2575613759940960297/posts/default/8234889064645449328'/><link rel='alternate' type='text/html' href='http://symfonylaprimeraexperiencia.blogspot.com/2008/08/symfony-la-primera-experiencia.html' title='Symfony La Primera Experiencia'/><author><name>Pedro C</name><uri>http://www.blogger.com/profile/16002497586687131524</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_2uLsW9yPjKQ/SKEjC_eSJeI/AAAAAAAAAAM/Fx7ihIXjtJg/s72-c/Dibujo.jpg' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
