DESCARGAR CONTENIDO DE SYMFONY
xajax-ajax - synfony
Información y puntos mas importantes sobre xajax-ajax - synfony
XAJAX
¿QUE ES XAJAX?
Xajax es una biblioteca código abierto de PHP capaz
de generar aplicaciones Web con tecnología AJAX.
Xajax utiliza una forma de trabajo de funciones,
designando qué funciones de código PHP se convierten en funciones AJAX.
AJAX se
ha convertido en una de las tecnologías más populares para la creación de
aplicaciones Web dinámicas. Por tal razón hay una gran cantidad
de bibliotecas y frameworks que nos permiten hacer uso de esta
tecnología de una manera sencilla y cómoda. Algunos de ellos son Prototype, script.aculo.us, Google Web Toolkit (GWT), Xajax
entre otros. En este artículo se realizará una comparación entre las Web Tradicionales
y la introducción de la tecnología AJAX en las
mismas, pero principalmente se centrará en la implementación de AJAX utilizando
la biblioteca Xajax.
WEB TRADICIONAL Y LA
IMPLEMENTACIÓN DE AJAX
Uno de los inconvenientes más comunes a la hora de
diseñar una interfaz de aplicación Web es
que una vez que la página se ha descargado en el cliente, la conexión con
el servidor se corta. Cualquier intento de dinamismo en
la interfaz por parte del cliente requiere una comunicación con el servidor
para la recarga (proceso que tiende a convertir la aplicación poco elegante y
lenta).
En el modelo tradicional de aplicaciones Web el
usuario envía una petición al servidor requiriendo una página, la cual es construida
y enviada al navegador. Esta página incluye un formulario HTML para
capturar datos del usuario. Una vez que el usuario reenvía los datos al servidor, la siguiente página será generada y enviada
dependiendo del valor de dichos datos, y así el proceso continúa. Supongamos
una aplicación de escritorio para el registro de un número de serie. Según
convenga, puede plantearse de diversas formas, una vez hemos terminado de
rellenar los correspondientes cuadros de texto con los caracteres del código,
podríamos hacer aparecer un tick verde a la derecha indicando
que hemos introducido un código válido. Tan pronto como se introduce el código,
la aplicación puede comprobar su validez y responder.
En contraste con el ejemplo anterior pero esta vez
orientado en una interfaz Web. Por
supuesto, todos los cuadros de textos donde introducir el código serán
idénticos, pero al rellenarlos, el usuario tendrá que enviar esos datos al
servidor para que éste valide el código. Una nueva página será entonces cargada
informando del éxito o fracaso de la operación, y en caso de fallo, el usuario
tendrá que volver atrás e intentarlo de nuevo cuantas veces sea necesario. Una
solución a estos problemas se presenta con el objeto XMLHttpRequest. Este objeto, ahora disponible como objeto nativo
tanto en Firefox como en otros navegadores existentes, permite
a JavaScript realizar peticiones
al servidor remoto sin la necesidad de recargar la
página. En esencia, pueden realizarse peticiones y recibir respuestas HTTP completamente
en segundo plano y sin que el usuario experimente ninguna interrupción visual.
Con la introducción de AJAX (Ashyncronous
Java Script And XML) en aplicaciones Web el manejo del objeto XMLHttpRequest se hace mucho más sencillo. Cuando el usuario
interactúa con la Web y genera un suceso, se crea y configura un objeto XMLHttpRequest, que posteriormente realiza una llamada al
servidor solicitando el manejo de ese evento. La petición se procesa en
el servidor y retorna una respuesta que puede ser un
documento XML, texto plano, JavaScript, etc. que contienen el
resultado de dicha petición. Luego el objeto XMLHttpRequest llama
a la función callback()para procesar el resultado y finalmente se
actualiza el DOM (Documen Object Model)
de la página con la petición dependiendo del resultado devuelto.
De esta manera AJAX permite que la velocidad de
navegación y dinamismo incrementen notablemente, dando como resultado
aplicaciones Web rápidas y fáciles de usar.
BIBLIOTECA XAJAX
Xajax es una biblioteca de código abierto
para PHP que permite crear de manera fácil y simple
aplicaciones Web basadas en AJAX usando además HTML, CSS, y Java
script. Las aplicaciones desarrolladas con Xajax pueden comunicarse
asíncronamente con funciones que se encuentran del lado del servidor y así actualizar el contenido de una página
sin tener que recargarla nuevamente, su última versión es la 0.5 Final que
cambia ligeramente comparado con las versiones anteriores 2.5.x y anteriores.
En un principio se crea una instancia de objeto
Xajax (xajax object). Este objeto manejará todo el procesamiento
a través de Xajax. En segundo lugar debemos registrar todas las funciones que
hemos definido previamente en el objeto Xajax, esto se puede hacer usando el
método xajax->register (). Finalmente todas las
respuestas serán procesadas utilizando el método xajax->processRequest
().
$objAjax = new xajax ();
$objAjax->register (XAJAX_FUNCTION,'mi_funcion_1');
$objAjax->register(XAJAX_FUNCTION,'mi_funcion_2');
$objAjax->processRequest ();
CARACTERISTICAS
En la actualidad se encuentran diversas clases de
bibliotecas y frameworks de AJAX disponibles para los
desarrolladores de aplicaciones Web. Algunas de ellas son Prototype y Script.aculo.us. Sin embargo para optar por estas soluciones los
desarrolladores deben tener un conocimiento, si bien no muy elevado, pero si
sólido de Javascript. Por tal hecho, la mayoría de ellos y sobre todo los que
utilizan PHP, al hacer uso de estos frameworks podrían
encontrar dificultades.
Por otro lado, la biblioteca Xajax es una
biblioteca puramente centrada en PHP. Con la introducción de la misma el manejo
de AJAX en PHP se hace mucho más sencillo y sobre todo solo se necesita
escribir sentencias muy cortas y simples en Javascript, lo que supone, según
sus creadores, una ventaja frente a otras soluciones.
Otras de las características son:
·
Xajax es
compatible con Google Chrome, Mozilla Firefox, Internet Explorer, Opera y Safari
·
Xajax
puede ser usado para actualizar estilos, clases CSS, botones de selección,
casillas de verificación y botones de radio o cualquier otro atributo de un
elemento
·
Cada
función registrada para ser accesible a través de Xajax puede tener distintos
tipos de petición.
FUNCIONAMIENTO
Paso 1: Incluir la biblioteca Xajax
Como primer paso debemos incluir la biblioteca
Xajax de la siguiente manera:
require_once("xajax.inc.php");
Paso 2: Creamos una instancia del objeto Xajax
$xajax = new xajax();
Paso 3: Registramos las funciones PHP que queremos
hacer accesibles desde JavaScript
$xajax->register(XAJAX_FUNCTION,"myFunction");
Paso 4: Escribimos las funciones PHP que vamos a
registrar, no hay que olvidarse de que debemos devolver el XML
Function myFunction($arg)
{
// coge
la variable $arg y haz alguna cosa con ella como realizar
// una
consulta a una base de datos y pone el resultado dentro de otra
//
variable, como $newContent
// Haz
una instancia del objeto xajaxResponse
$objResponse = new xajaxResponse();
// añade
un comando a la respuesta para asignar al atributo innerHTML
// del
elemento con id="SomeElementId" para que cambie su contenido a
$newContent
$objResponse->assign("SomeElementId","innerHTML",
$newContent);
//retorna la respuesta XML generada por el objeto
xajaxResponse
return
$objResponse;
}
Paso 5: Le indicamos a Xajax que procese las
peticiones:
$xajax->processRequest();
Paso 6: Debemos incluir el script Javascript entre
las cabeceras HEAD de nuestro código HTML
<?php $xajax->printJavascript(); ?>
Paso 7: Llamamos a la función desde un evento
cualquiera
Button onclick="xajax_myFunction
(SomeArgument);"
AJAX
AJAX
AJAX, acrónimo de asynchronous JavaScript and XML (JavaScript asíncrono y XML), es una técnica de desarrollo
web para crear aplicaciones interactivas o RIA (Rich
Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene
la comunicación asíncrona con el servidor en segundo plano. De
esta forma es posible realizar cambios sobre las páginas sin necesidad de
recargarlas, mejorando la interactividad, velocidad y usabilidad en las aplicaciones.
Ajax
es una tecnología asíncrona, en el sentido de que los datos adicionales se
solicitan al servidor y se cargan en segundo plano sin interferir con la
visualización ni el comportamiento de la página, aunque existe la posibilidad
de configurar las peticiones como síncronas de tal forma que la interactividad de la página se detiene hasta la
espera de la respuesta por parte del servidor.
JavaScript es el lenguaje interpretado (scripting language) en el que normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso
a los datos se realiza mediante XMLHttpRequest,
objeto disponible en los navegadores actuales. En cualquier caso, no es
necesario que el contenido asíncrono esté formateado en XML.
Ajax
es una técnica válida para múltiples plataformas y utilizable en muchos
sistemas operativos y navegadores dados que está basado en estándares abiertos
como JavaScript y Document Object Model (DOM)
¿ES AJAX UN LENGUAJE
DE PROGRAMACIÓN?
No, Ajax es un
conjunto de técnicas que se usan para lograr un objetivo y se basa en lenguajes
ya existentes como JavaScript.
Podríamos dar esta
definición de Ajax: “Ajax es un conjunto de métodos y técnicas que permiten
intercambiar datos con un servidor y actualizar partes de páginas web sin
necesidad de recargar la página completamente”.
Aunque Ajax se pensó
inicialmente para transferir datos en un solo formato (XML), actualmente Ajax
permite la transmisión de datos en múltiples formatos: XML, JSON, EBML, texto
plano, HTML, etc.
¿MEJOR USAR O NO USAR
AJAX?
Como todo, hay que
usar las cosas en su justa medida. Ajax bien usado puede ser muy útil para una
página web. Ajax mal usado puede ser un desastre para una página web.
¿Y ENTONCES AJAX QUÉ
ES Y PARA QUÉ SIRVE?
Veamos un esquema
para comprender mejor la idea que hay detrás del uso de Ajax. Este esquema lo
iremos comentando y comprendiendo a medida que avancemos en la explicación.
Realizar peticiones
al servidor y esperar respuesta puede consumir tiempo (el tiempo necesario para
recargar una página completa). Para agilizar los desarrollos web surgió Ajax
(inicialmente Asynchronous JavaScript And XML, aunque hoy día ya no es una
tecnología ligada a XML con lo cual no pueden asociarse las siglas a estos
términos), una tecnología que busca evitar las demoras propias de las
peticiones y respuestas del servidor mediante la transmisión de datos en
segundo plano usando un protocolo específicamente diseñado para la transmisión
rápida de pequeños paquetes de datos.
Con Ajax, se hace
posible realizar peticiones al servidor y obtener respuesta de este en segundo
plano (sin necesidad de recargar la página web completa) y usar esos datos
para, a través de JavaScript, modificar los contenidos de la página creando
efectos dinámicos y rápidos.
En el esquema
anterior vemos las ideas en torno a Ajax de forma gráfica. En la parte superior
hemos representado lo que sería un esquema de comunicación tradicional: el
cliente solicita una página web completa al servidor. El servidor recibe la
petición, se toma su tiempo para preparar la respuesta y la envía. El
resultado, una pequeña demora debido al tiempo que tarda en llegar la petición
al servidor, el tiempo que éste tarda en preparar la respuesta, y el tiempo que
tarda en llegar la respuesta más recargarse en el navegador.
En la parte inferior
vemos lo que sería un esquema de comunicación usando Ajax: el cliente tiene una
página web cargada (puede ser una página web completa, o sólo el esqueleto de
una página web). El cliente sigue trabajando y en segundo plano (de ahí que
hayamos dibujado con líneas punteadas las comunicaciones) le dice al servidor
que le envíe un paquete de datos que le hacen falta. El servidor procesa la
petición. Ahora la respuesta es mucho más rápida: no tiene que elaborar una
página web completa, sino sólo preparar un paquete de datos. Por tanto el
tiempo de respuesta es más rápido. El servidor envía el paquete de datos al
cliente y el cliente los usa para cambiar los contenidos que se estaban
mostrando en la página web.
Las ventajas que
proporciona Ajax son varias:
a) No es necesario recargar
y redibujar la página web completa, con lo que todo es más rápido.
b) El usuario no
percibe que haya demoras: está trabajando y al ser las comunicaciones en
segundo plano no hay interrupciones.
c) Los pasos que
antes podía ser necesario dar cargando varias páginas web pueden quedar
condensados en una sola página que va cambiando gracias a Ajax y a la
información recibida del servidor.
Como todo en la
vida, Ajax también tiene inconvenientes:
a) El usuario puede
perder la capacidad para hacer cosas que hacía con webs tradicionales puesto
que no hay cambio de página web. Por ejemplo usar los botones de avance y
retroceso del navegador o añadir una página a favoritos puede dejar de ser
posible. Esto en algunos casos no es deseable.
b) El desarrollo de
aplicaciones web se puede volver más complejo. Supongamos que antes tuviéramos
un proceso en el que avanzábamos a través de varias páginas web como 1, 2, 3.
De este modo la organización resulta sencilla. Si condensamos todo en una sola
página web: 1, escribir y depurar el código puede volverse más complicado. En
sitios complejos, puede ser muy difícil depurar errores.
c) Existen problemas
y restricciones de seguridad relacionados con el uso de Ajax. Hay que tener en
cuenta que por motivos de seguridad no todos los procesos se pueden realizar
del lado del cliente (que por su propia naturaleza es “manipulable”). También
existen restricciones de seguridad para impedir la carga de contenidos mediante
Ajax desde sitios de terceras partes.
d) La indexación para
los motores de búsqueda se ve dificultada, con lo cual nuestros sitios web
pueden perder visibilidad en los buscadores. No es lo mismo un contenido
“constante” o aproximadamente estático, fácilmente rastreable para un buscador,
que un contenido “cambiante” en función de la ejecución de JavaScript,
difícilmente rastreable para un buscador.
NAVEGADORES QUE
PERMITEN AJAX
Ha
de tenerse en cuenta que ésta es una lista general, y el soporte de las
aplicaciones Ajax dependerá de las características que el navegador permita.
·
Navegadores
basados en Gecko como Mozilla, Mozilla
Firefox, SeaMonkey, Camino, K-Meleon, IceWeasel, Flock,Epiphany, Galeon y Netscape versión
7.1 y superiores
·
Navegadores
basados en WebKit como Google
Chrome de Google o Safari de Apple.
·
Microsoft Internet
Explorer para Windows versión
5.0 y superiores, y los navegadores basados en él
·
Navegadores
con el API KHTML versión 3.2 y superiores implementado,
incluyendo Konqueror versión 3.2 y superiores y el Web
Browser for S60 de Nokia tercera generación y posteriores
·
Opera versión 8.0 y superiores, incluyendo Opera
Mobile Browser versión 8.0 y
superiores.
NAVEGADORES QUE NO
PERMITEN AJAX
·
Opera
7 y anteriores
·
Microsoft
Internet Explorer para Windows versión 4.0 y anteriores
·
Anteriores
a Safari 1.2
·
Dillo
·
Navegadores
basados en texto como Lynx y Links
·
Navegadores
para personas con capacidades especiales visuales (Braille)
·
Algunos
navegadores de teléfonos móviles
·
Navegador
de la PSP.
SYMFONY
¿QUE ES SYMFONY?
Symfony es un completo framework diseñado para optimizar el
desarrollo de las aplicaciones web basado en el patrón Modelo Vista
Controlador. Para empezar, 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.
Symfony está desarrollado
completamente en PHP 5.3. Ha sido probado en numerosos proyectos reales
y se utiliza en sitios web de comercio electrónico de primer nivel. Symfony es
compatible con la mayoría de gestores de bases de datos, como MySQL, PostgreSQL, Oracle y Microsoft SQL Server. Se puede ejecutar tanto en plataformas *nix (Unix,
Linux, etc.) como en plataformas Windows.
BREVE HISTORIA DE
SYMFONY
En el año 2003, Fabien Potencier,
creador de Symfony, investigó acerca de las herramientasopen source existentes
para el desarrollo de aplicaciones web en PHP, pero ninguna de las existentes
cumplió con sus expectativas. Cuando PHP 5 fue liberado, consideró que las
herramientas que existían en ese momento habían madurado lo suficiente para ser
integradas en un solo framework. Le llevó un año desarrollar el
núcleo de Symfony. Basó su trabajo en el Modelo Vista Controlador, el ORM de Propel y el ayudante para realizar plantillas de Ruby on Rails.
La primera versión de Symfony fue
lanzada en octubre de 2005, por Fabien Potencier. Originalmente fue creado para
el desarrollo de las aplicaciones de Sensio. Luego, tras el éxito que tuvo en
el desarrollo de una página web para comercio electrónico y algunos otros proyectos, decidió liberarlo bajo
una licencia open source.
PATROCINANTE
Symfony es patrocinado por Sensio
Labs, una compañía francesa que provee consultoría, servicios, formación sobre
tecnologías open source. Inicialmente fue nombrado Sensio Framework, y a
todas sus clases se les aplicó el prefijo sf. Tiempo después, cuando se decidió
lanzarlo como un framework open source, se
acordó llamarle Symfony.
CARACTERISTICAS
Symfony fue diseñado para ajustarse a
los siguientes requisitos:
·
Fácil de instalar y configurar en la mayoría de plataformas (y con la
garantía de que funciona correctamente en los sistemas Windows y *nix
estándares).
· Independiente del sistema gestor de bases de datos. Su capa de
abstracción y el uso de ORM (Doctrine 2, Propel), permiten cambiar con
facilidad de SGBD en cualquier fase del proyecto.
·
Utiliza programación orientada a objetos y características como los
espacios de nombres, de ahí que sea imprescindible PHP 5.3.
·
Sencillo de usar en la mayoría de casos, aunque es preferible para el
desarrollo de grandes aplicaciones Web que para pequeños proyectos.
· Aunque utiliza MVC (Modelo Vista Controlador), tiene su propia forma de
trabajo en este punto, con variantes del MVC clásico como la capa de
abstracción de base de datos, el controlador frontal y las acciones.
· Basado en la premisa de “convenir en vez de configurar”, en la que el
desarrollador sólo debe configurar aquello que no es convencional.
· Sigue la mayoría de mejores prácticas y patrones de diseño para la web.
· Preparado para aplicaciones empresariales y adaptables a las políticas y
arquitecturas propias de cada empresa, además de ser lo suficientemente estable
como para desarrollar aplicaciones a largo plazo.
· Código fácil de leer que incluye comentarios de phpDocumentor y que
permite un mantenimiento muy sencillo.
· Fácil de extender, lo que permite su integración con las bibliotecas de
otros fabricantes.
· Una potente línea de comandos que facilitan generación de código, lo cual
contribuye a ahorrar tiempo de trabajo.
CARACTERISTICAS
PARA EL DESARROLLO AUTOMATIZADO DE
PROYECTOS
Las características más comunes para
el desarrollo de proyectos web están automatizadas en Symfony, tales como:
·
Permite la internacionalización para la traducción del texto de la
interfaz, los datos y el contenido de localización.
·
La presentación usa templates y layouts que
pueden ser construidos por diseñadores de HTML que no posean conocimientos del framework.
·
Los formularios soportan la validación automática, lo cual asegura mejor
calidad de los datos en las base de datos y una mejor experiencia para el
usuario.
·
El manejo de cache reduce el uso de banda ancha y la carga del servidor.
·
La facilidad de soportar autenticación y credenciales facilita la creación
de áreas restringidas y manejo de seguridad de los usuarios.
·
El enrutamiento y las URLs inteligentes hacen amigable las direcciones de las
páginas de la aplicación.
·
Las listas son más amigables, ya que permite la paginación,
clasificación y filtraje automáticos.
·
Los plugins proveen
un alto nivel de extensibilidad.
·
La interacción con AJAX es mucho más sencilla.
·
LAS VENTAJAS TECNOLOGICAS
· Rápido y consumo menor de memoria: Un error
común en el desarrollo de aplicaciones es la de considerar el rendimiento o
velocidad de la aplicación cuando la implementación ha terminado. Symfony2 fue
concebido desde el principio para favorecer el rendimiento. Symfony2 es
aproximadamente tres (3) veces más rápido que la versión 1.4 o de 1.10 de Zend
Framework, usando la mitad de consumo de memoria.
· Flexibilidad ilimitada: Symfony2 es
adaptable.
• Gestión de la complejidad: Permite
desarrollar aplicaciones complejas con múltiples funcionalidades.
• Pieza a pieza: Permite construir de
acuerdo con las funciones requeridas.
• Microframework: Symfony2 se puede
utilizar para desarrollar una funcionalidad específica. Sin tener que
reconstruir todo y sin necesidad de instalar todo el framework, sólo la pieza
concreta requerida.
• Soporte: Proporcionado por Sensio,
adicionalmente la comunidad (listas de correo, IRC, etc.) y las empresas de
servicios que han invertido en este framework.
Por último, también es con miras a un
desarrollo sostenible que Symfony se distribuye bajo licencia Open Source MIT,
que no impone restricciones y permite el desarrollo de código abierto, así como
aplicaciones propietarias.
· Ampliable: Desde la más
pequeña pieza a la base completa en sí, todo lo que se presenta como un
"paquete" (o plug-in en el lenguaje Symfony) en Symfony2. Cada
paquete está destinado para añadir funcionalidad al framework, por supuesto, y
cada paquete también puede ser reutilizada en otro proyecto o compartida con el
resto de la comunidad. En cualquier caso, el sistema permite todo cambio dentro
de Symfony, incluyendo el propio núcleo. Uso de contratos de la interfaz del
sistema entre las piezas, el comportamiento del framework así puede ser
cambiado a voluntad, sin necesidad de reconfiguración completa.
• Estable y sostenible: Desarrollado
por los Laboratorios Sensio, las principales versiones de Symfony son
soportados por 3 años por la empresa. E incluso de por vida en cuanto a las
cuestiones relacionadas con la seguridad se refiere. Para mayor estabilidad,
las versiones menores del contrato Symfony2 y la interfaz también están
garantizadas y la compatibilidad entre todas las versiones secundarias se
llevará a cabo en el API definido por las interfaces públicas.
• La alegría de desarrollo: En un entorno
altamente funcional, Symfony2 también garantiza un cierto nivel de comodidad
para los desarrolladores. Al cuidar de una serie de tareas desagradables
(desarrollo de funcionalidades de menor importancia, por ejemplo), Symfony2
permite a los desarrolladores centrarse en los aspectos más destacados reales
de una aplicación y para ambos completamente validar su papel y mejorar su
productividad. Entre las herramientas de Symfony diseñados para que el vida de
un desarrollador mucho más fácil, está la barra de herramientas de depuración
web legendario, así como soporte nativo para entornos de desarrollo, páginas de
error detallados o incluso de seguridad nativa.
• Facilidad de uso: Completamente
flexible para satisfacer las necesidades de los profesionales y usuarios
avanzados por igual, Symfony2 es también muy accesible. Abundante
documentación, la comunidad y el apoyo profesional, y "incrustados"
mejores prácticas dentro del marco (las mejores prácticas que se aplican de
forma nativa sin necesidad de ser conscientes de ellos o entenderlos) permiten
que un principiante se sienta muy rápidamente a gusto con Symfony.
EN CONCLUSION:
FINALMENTE: « Symfony es un proyecto PHP de software libre que permite crear
aplicaciones y sitios web rápidos y seguros de forma profesional »« Symfony
es un conjunto de librerías que se utilizan para crear aplicaciones PHP » «
Symfony es un framework para crear aplicaciones y sitios web con PHP »« Symfony
es una aplicación informática que facilita la creación de sitios y aplicaciones
web »
·
Su licencia de tipo MIT permite crear gratuitamente incluso aplicaciones comerciales.
·
Dispone de un plan de
lanzamientos predecible, con versiones estables mantenidas durante tres años.
·
Su primera versión se publicó en el año 2005, por lo que es un proyecto maduro que ha sido probado en
decenas de miles de sitios y aplicaciones web (ver casos de
estudio).
·
Se trata del framework más popular en el mundo hispano, lo que facilita la búsqueda y
contratación de talento ya formado en Symfony.
·
Dispone de un programa de certificación para validar los conocimientos de los programadores
Symfony.
·
En su desarrollo participan cientos de programadores de todo el mundo,
pero las decisiones técnicas
importantes siempre las toma un reducido grupo de líderes, lo que garantiza que
se mantenga la visión del proyecto y evita la descoordinación.
·
Utilizar Symfony es
gratuito, incluso aunque crees aplicaciones y programas que después vendas a
otros clientes. A pesar de esta gratuidad, se ha desarrollado un ecosistema de
empresas que viven de Symfony gracias
a la formación, consultoría y desarrollo de proyectos.
para descargar esta informacion haga click :
Symfony es un completo framework diseñado para optimizar el
desarrollo de las aplicaciones web basado en el patrón Modelo Vista
Controlador. Para empezar, 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.
Symfony está desarrollado
completamente en PHP 5.3. Ha sido probado en numerosos proyectos reales
y se utiliza en sitios web de comercio electrónico de primer nivel. Symfony es
compatible con la mayoría de gestores de bases de datos, como MySQL, PostgreSQL, Oracle y Microsoft SQL Server. Se puede ejecutar tanto en plataformas *nix (Unix,
Linux, etc.) como en plataformas Windows.
En el año 2003, Fabien Potencier,
creador de Symfony, investigó acerca de las herramientasopen source existentes
para el desarrollo de aplicaciones web en PHP, pero ninguna de las existentes
cumplió con sus expectativas. Cuando PHP 5 fue liberado, consideró que las
herramientas que existían en ese momento habían madurado lo suficiente para ser
integradas en un solo framework. Le llevó un año desarrollar el
núcleo de Symfony. Basó su trabajo en el Modelo Vista Controlador, el ORM de Propel y el ayudante para realizar plantillas de Ruby on Rails.
La primera versión de Symfony fue
lanzada en octubre de 2005, por Fabien Potencier. Originalmente fue creado para
el desarrollo de las aplicaciones de Sensio. Luego, tras el éxito que tuvo en
el desarrollo de una página web para comercio electrónico y algunos otros proyectos, decidió liberarlo bajo
una licencia open source.
Symfony es patrocinado por Sensio
Labs, una compañía francesa que provee consultoría, servicios, formación sobre
tecnologías open source. Inicialmente fue nombrado Sensio Framework, y a
todas sus clases se les aplicó el prefijo sf. Tiempo después, cuando se decidió
lanzarlo como un framework open source, se
acordó llamarle Symfony.
Symfony fue diseñado para ajustarse a
los siguientes requisitos:
·
Fácil de instalar y configurar en la mayoría de plataformas (y con la
garantía de que funciona correctamente en los sistemas Windows y *nix
estándares).
· Independiente del sistema gestor de bases de datos. Su capa de
abstracción y el uso de ORM (Doctrine 2, Propel), permiten cambiar con
facilidad de SGBD en cualquier fase del proyecto.
·
Utiliza programación orientada a objetos y características como los
espacios de nombres, de ahí que sea imprescindible PHP 5.3.
·
Sencillo de usar en la mayoría de casos, aunque es preferible para el
desarrollo de grandes aplicaciones Web que para pequeños proyectos.
· Aunque utiliza MVC (Modelo Vista Controlador), tiene su propia forma de
trabajo en este punto, con variantes del MVC clásico como la capa de
abstracción de base de datos, el controlador frontal y las acciones.
· Basado en la premisa de “convenir en vez de configurar”, en la que el
desarrollador sólo debe configurar aquello que no es convencional.
· Sigue la mayoría de mejores prácticas y patrones de diseño para la web.
· Preparado para aplicaciones empresariales y adaptables a las políticas y
arquitecturas propias de cada empresa, además de ser lo suficientemente estable
como para desarrollar aplicaciones a largo plazo.
· Código fácil de leer que incluye comentarios de phpDocumentor y que
permite un mantenimiento muy sencillo.
· Fácil de extender, lo que permite su integración con las bibliotecas de
otros fabricantes.
· Una potente línea de comandos que facilitan generación de código, lo cual
contribuye a ahorrar tiempo de trabajo.
Las características más comunes para
el desarrollo de proyectos web están automatizadas en Symfony, tales como:
·
Permite la internacionalización para la traducción del texto de la
interfaz, los datos y el contenido de localización.
·
La presentación usa templates y layouts que
pueden ser construidos por diseñadores de HTML que no posean conocimientos del framework.
·
Los formularios soportan la validación automática, lo cual asegura mejor
calidad de los datos en las base de datos y una mejor experiencia para el
usuario.
·
El manejo de cache reduce el uso de banda ancha y la carga del servidor.
·
La facilidad de soportar autenticación y credenciales facilita la creación
de áreas restringidas y manejo de seguridad de los usuarios.
·
El enrutamiento y las URLs inteligentes hacen amigable las direcciones de las
páginas de la aplicación.
·
Las listas son más amigables, ya que permite la paginación,
clasificación y filtraje automáticos.
·
Los plugins proveen
un alto nivel de extensibilidad.
·
La interacción con AJAX es mucho más sencilla.
· Rápido y consumo menor de memoria: Un error
común en el desarrollo de aplicaciones es la de considerar el rendimiento o
velocidad de la aplicación cuando la implementación ha terminado. Symfony2 fue
concebido desde el principio para favorecer el rendimiento. Symfony2 es
aproximadamente tres (3) veces más rápido que la versión 1.4 o de 1.10 de Zend
Framework, usando la mitad de consumo de memoria.
· Flexibilidad ilimitada: Symfony2 es
adaptable.
• Gestión de la complejidad: Permite
desarrollar aplicaciones complejas con múltiples funcionalidades.
• Pieza a pieza: Permite construir de
acuerdo con las funciones requeridas.
• Microframework: Symfony2 se puede
utilizar para desarrollar una funcionalidad específica. Sin tener que
reconstruir todo y sin necesidad de instalar todo el framework, sólo la pieza
concreta requerida.
• Soporte: Proporcionado por Sensio,
adicionalmente la comunidad (listas de correo, IRC, etc.) y las empresas de
servicios que han invertido en este framework.
Por último, también es con miras a un
desarrollo sostenible que Symfony se distribuye bajo licencia Open Source MIT,
que no impone restricciones y permite el desarrollo de código abierto, así como
aplicaciones propietarias.
· Ampliable: Desde la más
pequeña pieza a la base completa en sí, todo lo que se presenta como un
"paquete" (o plug-in en el lenguaje Symfony) en Symfony2. Cada
paquete está destinado para añadir funcionalidad al framework, por supuesto, y
cada paquete también puede ser reutilizada en otro proyecto o compartida con el
resto de la comunidad. En cualquier caso, el sistema permite todo cambio dentro
de Symfony, incluyendo el propio núcleo. Uso de contratos de la interfaz del
sistema entre las piezas, el comportamiento del framework así puede ser
cambiado a voluntad, sin necesidad de reconfiguración completa.
• Estable y sostenible: Desarrollado
por los Laboratorios Sensio, las principales versiones de Symfony son
soportados por 3 años por la empresa. E incluso de por vida en cuanto a las
cuestiones relacionadas con la seguridad se refiere. Para mayor estabilidad,
las versiones menores del contrato Symfony2 y la interfaz también están
garantizadas y la compatibilidad entre todas las versiones secundarias se
llevará a cabo en el API definido por las interfaces públicas.
• La alegría de desarrollo: En un entorno
altamente funcional, Symfony2 también garantiza un cierto nivel de comodidad
para los desarrolladores. Al cuidar de una serie de tareas desagradables
(desarrollo de funcionalidades de menor importancia, por ejemplo), Symfony2
permite a los desarrolladores centrarse en los aspectos más destacados reales
de una aplicación y para ambos completamente validar su papel y mejorar su
productividad. Entre las herramientas de Symfony diseñados para que el vida de
un desarrollador mucho más fácil, está la barra de herramientas de depuración
web legendario, así como soporte nativo para entornos de desarrollo, páginas de
error detallados o incluso de seguridad nativa.
• Facilidad de uso: Completamente
flexible para satisfacer las necesidades de los profesionales y usuarios
avanzados por igual, Symfony2 es también muy accesible. Abundante
documentación, la comunidad y el apoyo profesional, y "incrustados"
mejores prácticas dentro del marco (las mejores prácticas que se aplican de
forma nativa sin necesidad de ser conscientes de ellos o entenderlos) permiten
que un principiante se sienta muy rápidamente a gusto con Symfony.
FINALMENTE: « Symfony es un proyecto PHP de software libre que permite crear
aplicaciones y sitios web rápidos y seguros de forma profesional »« Symfony
es un conjunto de librerías que se utilizan para crear aplicaciones PHP » «
Symfony es un framework para crear aplicaciones y sitios web con PHP »« Symfony
es una aplicación informática que facilita la creación de sitios y aplicaciones
web »
·
Su licencia de tipo MIT permite crear gratuitamente incluso aplicaciones comerciales.
·
Dispone de un plan de
lanzamientos predecible, con versiones estables mantenidas durante tres años.
·
Su primera versión se publicó en el año 2005, por lo que es un proyecto maduro que ha sido probado en
decenas de miles de sitios y aplicaciones web (ver casos de
estudio).
·
Se trata del framework más popular en el mundo hispano, lo que facilita la búsqueda y
contratación de talento ya formado en Symfony.
·
Dispone de un programa de certificación para validar los conocimientos de los programadores
Symfony.
·
En su desarrollo participan cientos de programadores de todo el mundo,
pero las decisiones técnicas
importantes siempre las toma un reducido grupo de líderes, lo que garantiza que
se mantenga la visión del proyecto y evita la descoordinación.
·
Utilizar Symfony es
gratuito, incluso aunque crees aplicaciones y programas que después vendas a
otros clientes. A pesar de esta gratuidad, se ha desarrollado un ecosistema de
empresas que viven de Symfony gracias
a la formación, consultoría y desarrollo de proyectos.
para descargar esta informacion haga click :
Suscribirse a:
Entradas (Atom)









