DESCARGAR CONTENIDO DE SYMFONY



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 ChromeMozilla FirefoxInternet ExplorerOpera 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.

VENTAJAS E INCONVENIENTES DE AJAX




        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, PostgreSQLOracle 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.
En 2012 el CMS Drupal decidió empezar a usar algunos componentes de Symfony en la versión Drupal 82

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 :