Este documento presenta el uso del framework Symfony en la gestión de un centro de computación avanzada. Describe cómo se han desarrollado aplicaciones internas como CMDB y UAWP usando Symfony. A pesar de una curva de aprendizaje inicial alta, Symfony ha permitido crear código sólido y mantenible. El centro planea seguir usando Symfony en futuros proyectos similares.
Este documento presenta el proyecto TEAS, una aplicación que permite cifrar y descifrar textos usando diferentes algoritmos simétricos de forma amigable e interactiva. La aplicación incluye 11 algoritmos de cifrado, mide los tiempos de ejecución, y permite ver las representaciones ASCII, hexadecimal y binaria. El documento también discute las dificultades en el desarrollo de la aplicación, como modificar los algoritmos existentes y gestionar archivos con diferentes codificaciones.
Este documento describe el framework Symfony para desarrollo en PHP. Explica que Symfony es un framework open-source y popular creado en 2007 que sigue buenas prácticas. También describe características clave como el uso de bundles que permiten agregar funcionalidad, helpers que generan código HTML, y el uso de PHPUnit para tests unitarios. El documento provee una introducción general a Symfony.
Este documento presenta una introducción a Android para desarrolladores Java. Explica que Android es un sistema operativo basado en Linux optimizado para dispositivos móviles que usa Java para aplicaciones nativas. Detalla la historia, arquitectura y conceptos clave de Android como activities, intents y services. También compara Android con Java y discute las herramientas y el proceso de desarrollo en Android.
El documento presenta un informe sobre el sistema operativo Android realizado por tres estudiantes - Virginia Durán León, Xiomara Saldaña Retto y Ericka Valencia Bucay - para su carrera de Licenciatura en Informática y Programación en la Universidad Estatal de Milagro bajo la supervisión del profesor Carlos Yance Carvajal.
Este documento presenta una introducción a la ingeniería inversa en Android. Cubre temas como el análisis estático y dinámico de aplicaciones Android, la arquitectura de Android incluyendo la máquina virtual Dalvik y el formato de archivo APK, y herramientas como Apktool y Dex2Jar que son útiles para la ingeniería inversa de aplicaciones Android.
Android es un sistema operativo móvil basado en Linux desarrollado por Google y la Open Handset Alliance. Se usa principalmente en teléfonos inteligentes, tabletas y otros dispositivos móviles. Cuenta con más de 400,000 aplicaciones disponibles en la tienda Google Play y su cuota de mercado supera el 50% a nivel mundial.
Este documento introduce los conceptos básicos de Android como sistema operativo para dispositivos móviles. Explica los diferentes elementos que componen una aplicación Android como actividades, servicios, receptores de broadcast y contenidos. También describe el ciclo de vida de las actividades y los diferentes tipos de procesos. Por último, resume los pasos para el desarrollo de aplicaciones Android utilizando el SDK, un IDE y la estructura básica de proyectos.
Este documento presenta el proyecto TEAS, una aplicación que permite cifrar y descifrar textos usando diferentes algoritmos simétricos de forma amigable e interactiva. La aplicación incluye 11 algoritmos de cifrado, mide los tiempos de ejecución, y permite ver las representaciones ASCII, hexadecimal y binaria. El documento también discute las dificultades en el desarrollo de la aplicación, como modificar los algoritmos existentes y gestionar archivos con diferentes codificaciones.
Este documento describe el framework Symfony para desarrollo en PHP. Explica que Symfony es un framework open-source y popular creado en 2007 que sigue buenas prácticas. También describe características clave como el uso de bundles que permiten agregar funcionalidad, helpers que generan código HTML, y el uso de PHPUnit para tests unitarios. El documento provee una introducción general a Symfony.
Este documento presenta una introducción a Android para desarrolladores Java. Explica que Android es un sistema operativo basado en Linux optimizado para dispositivos móviles que usa Java para aplicaciones nativas. Detalla la historia, arquitectura y conceptos clave de Android como activities, intents y services. También compara Android con Java y discute las herramientas y el proceso de desarrollo en Android.
El documento presenta un informe sobre el sistema operativo Android realizado por tres estudiantes - Virginia Durán León, Xiomara Saldaña Retto y Ericka Valencia Bucay - para su carrera de Licenciatura en Informática y Programación en la Universidad Estatal de Milagro bajo la supervisión del profesor Carlos Yance Carvajal.
Este documento presenta una introducción a la ingeniería inversa en Android. Cubre temas como el análisis estático y dinámico de aplicaciones Android, la arquitectura de Android incluyendo la máquina virtual Dalvik y el formato de archivo APK, y herramientas como Apktool y Dex2Jar que son útiles para la ingeniería inversa de aplicaciones Android.
Android es un sistema operativo móvil basado en Linux desarrollado por Google y la Open Handset Alliance. Se usa principalmente en teléfonos inteligentes, tabletas y otros dispositivos móviles. Cuenta con más de 400,000 aplicaciones disponibles en la tienda Google Play y su cuota de mercado supera el 50% a nivel mundial.
Este documento introduce los conceptos básicos de Android como sistema operativo para dispositivos móviles. Explica los diferentes elementos que componen una aplicación Android como actividades, servicios, receptores de broadcast y contenidos. También describe el ciclo de vida de las actividades y los diferentes tipos de procesos. Por último, resume los pasos para el desarrollo de aplicaciones Android utilizando el SDK, un IDE y la estructura básica de proyectos.
Symfony, cloud computing y webs scalables - decharlasDecharlas
Este documento describe una conferencia sobre Symfony, computación en la nube y escalabilidad web que se llevará a cabo los días 5 y 6 de julio de 2010 en la Universitat Jaume I en Castellón, España. La conferencia incluirá presentaciones sobre arquitectura web escalable, rendimiento y computación en la nube.
Symfony, cloud computing y web escalablesAsier Marqués
El documento resume una presentación sobre escalabilidad web y cloud computing usando Symfony. La presentación cubre conceptos de escalabilidad como capacidad de crecimiento, rendimiento y alta disponibilidad. También discute puntos críticos para la escalabilidad como el desarrollo, base de datos, caché y gestión de infraestructura. Explica cómo Symfony permite una aplicación escalable y también cubre temas como arquitectura maestro-esclavo en MySQL y el uso de Sphinx para búsquedas.
Symfony plugins - No reinventes la rueda PLUGINS - Jornadas CastellónJordi Llonch
Este documento proporciona un resumen de una presentación sobre plugins en Symfony. La presentación explica qué son los plugins, por qué son útiles, y cómo crear y usar plugins en proyectos Symfony. También incluye estadísticas sobre la cantidad y popularidad de los plugins existentes.
El documento describe los pasos para instalar el framework Symfony para desarrollo web en PHP, incluyendo instalar las herramientas necesarias como servidor web Apache, motor de base de datos MySQL y lenguaje PHP, y explica tres métodos para instalar Symfony: usar el entorno de pruebas, instalar a través de PEAR o mediante el sistema de control de versiones SVN.
Este documento presenta una introducción a Symfony, incluyendo su historia, arquitectura, uso y comunidad. Symfony es un framework PHP popular para desarrollo web que se utiliza en grandes proyectos como phpBB y Drupal. Proporciona funcionalidades como enrutamiento, formularios, validación y plantillas para crear aplicaciones web rápidas y flexibles.
El documento describe Symfony, un framework PHP popular y de código abierto. Symfony acelera el desarrollo de aplicaciones web mediante el uso de patrones como MVC, automatizando tareas y proporcionando herramientas como generadores de código y depuración integrada. El documento también cubre cómo Symfony permite crear rápidamente aplicaciones mediante comandos de línea para configurar bases de datos, generar modelos y datos de prueba, y más.
Este documento describe el framework Symfony para desarrollo en PHP. Explica qué es un framework y por qué usarlo, presenta las versiones de Symfony, y describe cómo crear un primer proyecto con Symfony2, incluyendo características como bundles, helpers, acceso a base de datos con Doctrine y formularios. También cubre tests unitarios con PHPUnit e incluye una sección sobre PHP 5.3.2.
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPDaniel Primo
Silex es un microframework PHP ligero inspirado en Sinatra. Proporciona herramientas como enrutado, controladores, plantillas Twig, formularios, validación, base de datos con Doctrine y más, de forma ordenada y extensible. El documento explica cómo instalar Silex, crear aplicaciones básicas con enrutado y controladores, e integrar características mediante proveedores para organizar mejor el código.
CRUD básico con Symfony. Esta presentación es una continuación de lo contado en la II Symfony Zaragoza. Explica un ejemplo sencillo de un CRUD para mostrar como realizar modelos, controladores, vistas, formularios, etc.
Este documento proporciona una introducción a Symfony2, un framework PHP. Explica brevemente qué es un framework y sus ventajas, como la organización de proyectos y la separación de la lógica y presentación. Luego describe algunas características clave de Symfony2, incluyendo su uso de bundles, plantillas Twig, configuración y consola de comandos. Finalmente, cubre temas como el mapeo de base de datos y consultas con Doctrine ORM.
El documento presenta una introducción a Symfony, un framework PHP. Explica las ventajas de usar Symfony como la creación de bases de datos, autenticación, validación, pruebas unitarias y más. También describe cómo Symfony fomenta el desarrollo en equipo a través de la separación de responsabilidades y el uso de convenciones estandarizadas.
Plantillajornadasversion2 100708010347-phpapp01Alfonso Alba
El documento presenta una introducción a Symfony, un framework PHP. Explica las ventajas de usar Symfony como la creación de bases de datos, autenticación, validación, pruebas unitarias y más. También describe cómo Symfony fomenta el desarrollo en equipo a través de la separación de responsabilidades y el uso de convenciones estandarizadas.
Este documento introduce el framework Symfony 2. Explica que Symfony 2 se enfoca en el rendimiento, la reutilización de código y la asistencia al desarrollo. También describe algunas de las características clave de Symfony 2 como su arquitectura orientada a servicios, el uso de bundles, el front controller, el caching, y las herramientas para generar código y manejar modelos de datos.
El documento describe Symfony, un framework PHP para construir aplicaciones web. Symfony proporciona herramientas y utilidades que simplifican el desarrollo web. Explica cómo instalar Symfony siguiendo los pasos de instalar PHP, configurar los estándares de código, crear un proyecto de ejemplo y configurar el entorno de desarrollo.
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)AbrahamCastillo42
Power point, diseñado por estudiantes de ciclo 1 arquitectura de plataformas, esta con la finalidad de dar a conocer el componente hardware llamado tarjeta de video..
Más contenido relacionado
Similar a Symfony en la gestión de un centro de computación avanzada
Symfony, cloud computing y webs scalables - decharlasDecharlas
Este documento describe una conferencia sobre Symfony, computación en la nube y escalabilidad web que se llevará a cabo los días 5 y 6 de julio de 2010 en la Universitat Jaume I en Castellón, España. La conferencia incluirá presentaciones sobre arquitectura web escalable, rendimiento y computación en la nube.
Symfony, cloud computing y web escalablesAsier Marqués
El documento resume una presentación sobre escalabilidad web y cloud computing usando Symfony. La presentación cubre conceptos de escalabilidad como capacidad de crecimiento, rendimiento y alta disponibilidad. También discute puntos críticos para la escalabilidad como el desarrollo, base de datos, caché y gestión de infraestructura. Explica cómo Symfony permite una aplicación escalable y también cubre temas como arquitectura maestro-esclavo en MySQL y el uso de Sphinx para búsquedas.
Symfony plugins - No reinventes la rueda PLUGINS - Jornadas CastellónJordi Llonch
Este documento proporciona un resumen de una presentación sobre plugins en Symfony. La presentación explica qué son los plugins, por qué son útiles, y cómo crear y usar plugins en proyectos Symfony. También incluye estadísticas sobre la cantidad y popularidad de los plugins existentes.
El documento describe los pasos para instalar el framework Symfony para desarrollo web en PHP, incluyendo instalar las herramientas necesarias como servidor web Apache, motor de base de datos MySQL y lenguaje PHP, y explica tres métodos para instalar Symfony: usar el entorno de pruebas, instalar a través de PEAR o mediante el sistema de control de versiones SVN.
Este documento presenta una introducción a Symfony, incluyendo su historia, arquitectura, uso y comunidad. Symfony es un framework PHP popular para desarrollo web que se utiliza en grandes proyectos como phpBB y Drupal. Proporciona funcionalidades como enrutamiento, formularios, validación y plantillas para crear aplicaciones web rápidas y flexibles.
El documento describe Symfony, un framework PHP popular y de código abierto. Symfony acelera el desarrollo de aplicaciones web mediante el uso de patrones como MVC, automatizando tareas y proporcionando herramientas como generadores de código y depuración integrada. El documento también cubre cómo Symfony permite crear rápidamente aplicaciones mediante comandos de línea para configurar bases de datos, generar modelos y datos de prueba, y más.
Este documento describe el framework Symfony para desarrollo en PHP. Explica qué es un framework y por qué usarlo, presenta las versiones de Symfony, y describe cómo crear un primer proyecto con Symfony2, incluyendo características como bundles, helpers, acceso a base de datos con Doctrine y formularios. También cubre tests unitarios con PHPUnit e incluye una sección sobre PHP 5.3.2.
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPDaniel Primo
Silex es un microframework PHP ligero inspirado en Sinatra. Proporciona herramientas como enrutado, controladores, plantillas Twig, formularios, validación, base de datos con Doctrine y más, de forma ordenada y extensible. El documento explica cómo instalar Silex, crear aplicaciones básicas con enrutado y controladores, e integrar características mediante proveedores para organizar mejor el código.
CRUD básico con Symfony. Esta presentación es una continuación de lo contado en la II Symfony Zaragoza. Explica un ejemplo sencillo de un CRUD para mostrar como realizar modelos, controladores, vistas, formularios, etc.
Este documento proporciona una introducción a Symfony2, un framework PHP. Explica brevemente qué es un framework y sus ventajas, como la organización de proyectos y la separación de la lógica y presentación. Luego describe algunas características clave de Symfony2, incluyendo su uso de bundles, plantillas Twig, configuración y consola de comandos. Finalmente, cubre temas como el mapeo de base de datos y consultas con Doctrine ORM.
El documento presenta una introducción a Symfony, un framework PHP. Explica las ventajas de usar Symfony como la creación de bases de datos, autenticación, validación, pruebas unitarias y más. También describe cómo Symfony fomenta el desarrollo en equipo a través de la separación de responsabilidades y el uso de convenciones estandarizadas.
Plantillajornadasversion2 100708010347-phpapp01Alfonso Alba
El documento presenta una introducción a Symfony, un framework PHP. Explica las ventajas de usar Symfony como la creación de bases de datos, autenticación, validación, pruebas unitarias y más. También describe cómo Symfony fomenta el desarrollo en equipo a través de la separación de responsabilidades y el uso de convenciones estandarizadas.
Este documento introduce el framework Symfony 2. Explica que Symfony 2 se enfoca en el rendimiento, la reutilización de código y la asistencia al desarrollo. También describe algunas de las características clave de Symfony 2 como su arquitectura orientada a servicios, el uso de bundles, el front controller, el caching, y las herramientas para generar código y manejar modelos de datos.
El documento describe Symfony, un framework PHP para construir aplicaciones web. Symfony proporciona herramientas y utilidades que simplifican el desarrollo web. Explica cómo instalar Symfony siguiendo los pasos de instalar PHP, configurar los estándares de código, crear un proyecto de ejemplo y configurar el entorno de desarrollo.
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)AbrahamCastillo42
Power point, diseñado por estudiantes de ciclo 1 arquitectura de plataformas, esta con la finalidad de dar a conocer el componente hardware llamado tarjeta de video..
para programadores y desarrolladores de inteligencia artificial y machine learning, como se automatiza una cadena de valor o cadena de valor gracias a la teoría por Manuel Diaz @manuelmakemoney
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)codesiret
Los protocolos son conjuntos de
normas para formatos de mensaje y
procedimientos que permiten a las
máquinas y los programas de aplicación
intercambiar información.
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...AMADO SALVADOR
Descarga el Catálogo General de Tarifas 2024 de Vaillant, líder en tecnología para calefacción, ventilación y energía solar térmica y fotovoltaica. En Amado Salvador, como distribuidor oficial de Vaillant, te ofrecemos una amplia gama de productos de alta calidad y diseño innovador para tus proyectos de climatización y energía.
Descubre nuestra selección de productos Vaillant, incluyendo bombas de calor altamente eficientes, fancoils de última generación, sistemas de ventilación de alto rendimiento y soluciones de energía solar fotovoltaica y térmica para un rendimiento óptimo y sostenible. El catálogo de Vaillant 2024 presenta una variedad de opciones en calderas de condensación que garantizan eficiencia energética y durabilidad.
Con Vaillant, obtienes más que productos de climatización: control avanzado y conectividad para una gestión inteligente del sistema, acumuladores de agua caliente de gran capacidad y sistemas de aire acondicionado para un confort total. Confía en la fiabilidad de Amado Salvador como distribuidor oficial de Vaillant, y en la resistencia de los productos Vaillant, respaldados por años de experiencia e innovación en el sector.
En Amado Salvador, distribuidor oficial de Vaillant en Valencia, no solo proporcionamos productos de calidad, sino también servicios especializados para profesionales, asegurando que tus proyectos cuenten con el mejor soporte técnico y asesoramiento. Descarga nuestro catálogo y descubre por qué Vaillant es la elección preferida para proyectos de climatización y energía en Amado Salvador.
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Symfony en la gestión de un centro de computación avanzada
1. Castellón - 5 y 6 de Julio 2010 – Universitat Jaume I organizan patrocinan colaboran Jornadas Symfony 5 y 6 de julio 2010 Universitat Jaume I, Castellón http://decharlas.uji.es/symfony
2. Caso práctico: Symfony en la gestión de un centro de computación avanzada César Suárez, www.ceta-ciemat.es Jornadas Symfony 5 y 6 de julio 2010 Universitat Jaume I, Castellón http://decharlas.uji.es/symfony
3. sesión patrocinada por www.ceta-ciemat.es Jornadas Symfony http://decharlas.uji.es/symfony
Primero agradecer a la organización el esfuerzo que han hecho para cuadrar horarios y hacernos un hueco como ponentes. Como ha sido un dia largo, tampoco me quiero extender mucho. En nuestro caso vamos a explicar nuestras experiencia con el framework durante el desarrollo de diversas herramientas hechas en el CETA-CIEMAT. Pero antes de nada vamos a ponernos en contexto de la naturaleza del centro, para comprender el contexto de nuestros casos prácticos.
Tantas siglas significan: CETA, Centro Extremeño de Tecnologías avanzadas, en cuyas características ahondaremos más adelante. Se trata de un centro de CIEMAT, Centro de Investigaciones Energéticas Medio Ambientales. Organismo autónomo al Ministerio de Educación y Ciencia, centrado en la investigación, especialmente en materias de energía y medio ambiente (como su propio nombre indica).
El CETA-CIEMAT se encuentra en la ciudad de Trujillo, a unos 40 KM de Cáceres., como se puede ver en el mapa adjunto, dentro del conventual de San Francisco, un lugar bastante peculiar para albergar un centro centrado en la investigación.
Y aquí se pueden ver algunas fotos.
Y aquí se pueden ver algunas fotos.
Y aquí se pueden ver algunas fotos.
Y aquí se pueden ver algunas fotos.
Datos curiosos de nuestro CPD.
Cuáles son los objetivos del centro? En un principio nuestro centro actualmente está centrado en las redes GRID, ya sea a nivel de investigación, ofreciendo servicios o desarrollando sistemas que se beneficien de este tipos de redes. Ofrecemos toda la potencia de la GRID (para quien no lo sepa, a grandes rasgos y sin ser muy ortodoxos a nivel técnico), se basa en redes de varias computadoras que comparten sus capacidades de cálculo y almacenamiento para alcanzar potencias similares a los de una supercomputadora a un coste más bajo). No sólo ofrecemos acceso a las redes GRID en las que participamos, sino que investigamos las capacidades y uso de este tipo de tecnología a todos los niveles, no sólo a nivel científico que es el más habitual, y también desarrollamos aplicaciones que hacen uso de la potencia de la GRID. Como centro, estamos abiertos a todo tipo de colaboraciones con cualquier institución.
Todos estos objetivos se fundamentan en varios valores (o principios), que vienen a conformar la filósofía del centro, teniendo en cuenta su naturaleza pública. El principal es buscar el interes social y el bienestar de los ciudadanos a través de las tecnologías de la información y la comunicación, y hacer estas lleguen a todo el tejido social. De nuevo recalcar que todo esto creemos que sólo es posible buscando colaboraciones y sinergias con otras instituciones, y añadir que creemos que la clave de todo esto pasa por el uso del software libre.
Como decía, nos encargamos dentro del centro en la investigación, diseño y desarrollo de aplicaciones software. Principalmente usamos Java, y alguna de sus tecnologías relacionadas como JSF. Nuestros desarrollos se pueden dividir en 2 tipos: El primero aplicaciones relacionadas con las redes GRID, lo que incluye el porting de aplicaciones «normales» para que se beneficien de este tipo de redes. Nuestro proyecto principal es DRI (Digital Repositories Infraestructure), una plataforma de repositorios digitales, capaz de almacenar contenido digital en la GRID. Actualmente de este sistema se beneficia el Archivo Historico de Trujillo, o una colaboración con la universidad de Oporto para un repositorio de mamografías. De momento toda la plataforma está escrita en Java, y todos los clientes en Java. Al final, volveremos a esto brevemente. Aparte de los proyectos relacionados con la GRID, la unidad desarrolla aplicaciones internas para la unidad, con la idea de ayudar al resto de unidad del diagrama anterior. Entre estas aplicaciones, dos son las que nos ocupan, y que están centradas en la administración desde nuestro centro como centro de computación avanzada. Dichas aplicaciones las comentaremos a continuación, las razones que nos llevaron a usar Symfony, y que problemas y benificios ha conllevado su uso.
Nuestra aplicación se trata de un CMDB, una aplicación para llevar el inventariado de máquinas del centro, y la generación de ficheros de configuración. Como somos muy originales, nuestra herramienta se llama «cmdb» a secas. En centros con tantos elementos a la red, no es mantenible generar «a mano» los ficheros de configuración DNS o DHCP. Por ejemplo, la última vez que miré la herramienta, habría 783 elementos, entre máquinas físicas, virtuales, elementos de red… Nuestra herramienta a parte de generar los ficheros de configuración, es capaz de mandar estos a los servidores correspondientes y reiniciar los servicios. De tal forma, con un par de clicks, el administrador puede poner en orden la estructura de red del centro. Anteriormente existía un CMDB programado en Ruby, pero que se había quedado corto de funcionalidad. Además la gente de administración de sistemas no estaban nada contentos con Ruby, y querían algo sencillo, fácil de desplegar y mantener. Básicamente querían algo desde cero, y MUY importante, que mantuviese todos los datos coherentes. La anterior herramienta no tenía ningun tipo de validador en los formularios de añadir o editar, y eso provocaba que gracias a fallos humanos se almacenasen datos problemáticos: Ips mal definidas, nombres de host repetidos, valores incoherentes… Mucho tiempo de desarrollo de la herramienta se ha pasado añadiendo todo tipo de validadores (luego veremos algunos ejemplos), e incluso facilidades incrustadas en ellos, como buscadores de Ips libres dentro de una VLAN, o de MACs libres para máquinas virtuales. Este proyecto supuso nuestra primera experiencia com symfony, ya que ninguno teníamos experiencia previa en este framework (incluso en ningun framework web similar).
Teniendo en cuenta, todo esto y algunas razones que iremos explicando, hubo una serie de datos que nos hicieron plantearnos el uso del framework. Primero necesitabamos algo fácil y sencillo de mantener. Nos dijeron que querían algo sencillito, que funcionase en un servidor con un apache, php y mysql, porque a ellos les resultaba más familiar en el caso de migrar la herramienta de máquina (por ejemplo). Obviamente teníamos la necesidad de tener algo que nos ayudase a la hora de generar formularios, y más concretamente sus validadores, y a priori, el de symfony nos daba esa ayuda, que además nos dotaba gran flexibilidad de personalizar nuestros formularios a nuestro gusto. Más orientados a la hora de desarrollar, están las 3 últimas causas. Primero que esté basado en el patrón de diseño modelo-vista-controlador, que separa la parte del código de datos, la de negocio, y las vistas, lo que nos aseguraba como resultado un sistema sostenible y extensible, cosa muy importante, ya que una de las razones principales de desechar el anterior CMDB fue esta. Otra cosa muy importante, y que nos animó a usar Symfony es la documentación que tenía, y que además era alabada en todos los análisis que leímos. Y por supuesto que nos ofreciese ayuda en otros aspectos del sistema, como un framework para acceder a los datos de nuestra base de dataos facilmente como Propel, o un framework Javascript como Protottype. Con todos estos datos, y un poco a lo loco, comenzamos nuestra andadura con symfony.
Bueno, en los primeros ciclos de desarrollo ya apreciamos que en algunas cosas no nos habíamos confundido. Efectivamente era fácil de instalar, desplegar y configurar. Con symfony project:freeze (creo que ya obsoleto, no?), la propia herramienta convertía nuestra «carpeta» de desarrollo en un paquete listo para desplegar con un simple copia-pega. Incluso, en el centro tenemos como parte de nuestra metodología el uso de «ant» (una herramienta de automatización de tareas hecha en java, y por tanto, multiplataforma), teníamos programados rapidamente nuestras rutinas con las que podemos preparar nuestro proyecto y desplegarlo con un solo comando. Tambien vimos que a la hora de configurar nuestra herramienta, todos los ficheros de configuración están en formato YAML, facilmente interpetables hasta por gente sin conocimientos técnicos de ningun tipo. En dos ficheros muy localizados se puede concentrar casi toda la configuración de nuestra herramienta, tanto la config de la bd, como la propia de la herramienta. La documentación, al final resultó excelente, y muy abundante. Libros de primeros pasos, de referencia, tutoriales, … Todo sabiendo conjugar los conceptos teoricos como partes prácticas (DESTACAR JOBEET). Y también disponible en multitud de idiomas, incluido una buena traducción en español. Todo online o en PDF bien maquetado para impresión. Y casi lo más importante: gratis. A destacar su comunidad tan activa, y que la documentación está siempre actualizada, sobretodo cuando la gente de symfony tiene a bien lanzar nuevos libros que enriqucen lo ya existente. Y otra cosa que pudimos confirmar de nuestras suposiciones iniciales, es que el framework de formularios era verdaderamente potente. Altamente personalizable, tanto en logica como en vista. El sistema de validadores es totalmente personalizable, dando una flexibilidad casi ilimitada a la hora de validar nuestros validadores.
Mas cosas que nos gustaron. Sobretodo a la hora de generar código de buena calidad. Primero su estructura de directorios. SF se basa mucho en una compleja, y amplia estructura de directorios a la hora de estructurar su código. Ahora buen, una vez que te acostumbras, eres capaz de llegar a cualquier parte de tu codigo en un periquete, con la ventaja de estar todo MUY organizado. Se acabo lo de no acordarse donde estaba tal clase, o tal librería. Facilidad a la hora de generar tests unitarios y funcionales para asegurar el funcionamiento con la herramienta, de manera sencilla. Auto cargado de librerías, que funciona genial. Se acabaron las aplicaciones rotas porque se olvido incluir una librería. Helpers (pequeñas funciones) creados para ayudarnos a hacer las tareas más tediosas más fáciles, como generar links a otras partes de la herramienta, meter una imagen en una vista, hacer llamadas AJAX sencillas, crear una paginación, … Sistema de generación de la parte de la vista muy modulable, de tal forma que impide que haya que programar una y otra vez los mismos elementos de la interfaz. Se ahorra tiempo, fallos, y código repetido. Luego la barra de depuración que tiene, de tal manera que siempre que la quedemos activadas, desde el mismo navegador, podamos ver logs, variables de sistema, mediciones de tiempo, consultas lanzadas contra la BD, … Luego también es un framework muy anclado a las nuevas características que trajo PHP5. Ya no es que te deje usarlo, es que lo aprovecha al máximo en su core.
Pero no todo es bueno. Symfony tiene una curva de aprendizaje costosa. Propone muchos conceptos nuevos para aquel que nunca ha usado un framework web mvc. Aunque la docuemtanción es buena, al ser tan extensa, y variada a veces es difícil encontrar algunos detalles. Es algo que hay que tener en cuenta. Con Symfony cuesta arrancar, por mucho PHP que sepas, PHP es sólo el medio, toda la filosfía de desarrollo que hay detrás es muy distinta si no se tiene experiencia previa. Vale, el framework de formularios es potente. Es flexible. Puedes hacer lo que quieras con él. Pero eso tiene un precio, y es que es complicado. Puede parecer en la primera toma de contacto fácil, poruqe lo básico es muy fácil, pero en cuanto quieres complicar algo las cosas los problemas empiezan a suceder. Actualmente, y a pesar de la experiencia (que no me considero ningun experto), todavía me quedo a veces atascado para hacer alguna cosa con los formularios y/o validadores. Que use versiones tan avanzadas de PHP no siempre es bueno, ya que por temas de administración, a veces no se puede tener la versión de PHP que nos gustaría en los entornos de desarrollo, test o producción. Por ello, tuvimos que empezar a usar sf1.1, aunque ya estuviese el 1.2 disponible. En el momento de empezar a desarrollar, tampoco existía ningun entorno de desarrollo medianamente competente que soportase a symfony, lo que significa a renunciar a muchas facilidades que frameworks modernos como netbeans o eclipse dan.
Pero bueno, al final, tras un tiempo de desarrollo, creemos que las ventajas superaron a las desventajas. El código resultable actual es sólido, está bien organizo, es sencillo y por tanto es mantenible. Además, según está organizado symfony (patrón MVC), es muy fácil refactorizar partes sin afectar al resto. El framework de formularios, a pesar de las peleas que hemos tenido con él , creo que hemos conseguido domarlo, y actualmente hemos creado formularios con validadores bastante complejos, sólidos, y bastante desacoplados, y por tanto reutilizables. Incluso la estricta estructura de directorios no resultó ser tan inflexible y resultó ser personalizable, lo cuál fue muy util para adecuar nuestros proyectos a la estructura que nuestros proyectos software tienen en los repositorios SVN. En definitva, 6 releases puestas en produción con pocos sobresaltos, que han desembocado en una herramienta, estable, ampliable y modificable.