2008-10-04 23 views
8

He estado escribiendo aplicaciones web de PHP desde hace algún tiempo, y he encontrado marcos de JavaScript muy agradables, como JQuery, ExtJS, Scriptaculous, etc. No puedo decir lo mismo sobre el lado de PHP - Siempre codifiqué esa parte del diálogo cliente-servidor desde cero.Integrando AJAX y PHP

He usado CodeIgniter (http://codeigniter.com/) y es agradable, pero no se ocupa de AJAX en su conjunto, sino que proporciona comprobación de entrada, manipulación de imágenes y algunos ayudantes de salida.

¿Hay una librería PHP/clase/marco normalizado por ahí que ofertas/integra con los marcos de Javascript? Algo que puede captar las respuestas/solicitudes de los usuarios, validar la identidad y entrada, proporcionar el estado de progreso, realizar un seguimiento de las sesiones, estar al tanto de los eventos asincrónicos, etc.

Respuesta

9

El Zend Framework se integra con Dojo Toolkit. Todavía no he usado el último Zend Framework, pero sí sé que en el pasado, ha demostrado ser confiable.

+0

Iba a sugerir esto, así que preferiría votarte :-) – leek

+0

De acuerdo ... y aunque todavía no he utilizado la integración de Dojo, a mi colega le ha gustado y parece que le gusta en su mayor parte. –

4

Puede haber una, pero no puedo imaginar por qué. Una solicitud AJAX se ve y actúa como una solicitud HTTP desde la perspectiva del servidor. Puede obtener y configurar cookies. Todas las variables de entorno que esperaría de una solicitud HTTP están ahí. Todos los verbos HTTP funcionan igual que cualquiera de los campos de encabezado.

+0

Con la excepción de que rara vez se desea devolver una respuesta HTML completo. – noah

+0

Además, las solicitudes AJAX se envían para todos los usos bajo el sol, mientras que un HTTP get/post es solo para recuperar una página HTML en general. (No es que no se puedan usar de otra manera.) –

+0

AJAX usa HTTP, por lo que no es cierto que HTTP get/post solo sea para recuperar una página HTML. ¿Sabes cómo pones todas estas etiquetas HTML en tu archivo PHP? Bueno, no tienes que hacer eso. Aunque el acrónimo Hypertext Preprocessor, puede usar PHP para generar cualquier tipo de texto, incluya JSON o XML. – Glenn

1

La única diferencia en lo que hago cuando voy a volver JavaScript o HTML a un navegador para AJAX es que no se emiten los encabezados o datos adicionales. (El manejo de errores uso errores de salidas cuando estoy en depuración, así que también lo he deshabilitado).

3

En la siguiente versión principal 1.5 CakePHP vendrá con jQuery.

2

SAJAX es uno de una serie de bibliotecas que proporcionan una manera fácil de vincular devoluciones de llamada desde el lado del cliente (JS) para el lado del servidor (PHP). Otra biblioteca que hace algo similar es JPSpan, sin embargo, no estoy seguro de si todavía se admite activamente. Solo he hecho pequeños experimentos con estas dos bibliotecas para que su kilometraje pueda variar.

2

El uso de una biblioteca está bien como una conveniencia una vez que entiendes el concepto, y probablemente sí, pero para otros que lean esto, sugiero hacerlo a mano algunas veces primero y realmente entenderlo. También recomiendo el libro Bulletproof AJAX. Es bastante breve, está bien escrito y describe no solo cómo usar AJAX, utilizando PHP como lenguaje de programación, sino también cómo crear páginas que aprovechan AJAX pero que aún funcionan bien si el usuario tiene JavaScript desactivado.

0

Sí, PHP puede generar archivos XML y JSON para el Ajax, pero no todos los marcos de PHP apoyar JSON/XML igualmente bien.

Por ejemplo: me encontré con un problema en Drupal (4.7), donde las sesiones de PHP o será borrada después de la salida de una respuesta JSON. (El código de salida HTML estaba cerrando explícitamente la sesión, que era necesaria o la sesión se borraba).

También me gustaría saber acerca de los marcos PHP que hacen que sea más fácil administrar el código JavaScript. Incluso algo básico como incluir jQuery solo en las páginas que lo requieren. O ayudando a administrar el código javascript de minimización/embalaje.

0

Perdón por publicar en la pregunta anterior, pero el marco relativamente nuevo Agile Toolkit es la respuesta perfecta para OP.

Se le permite crear completamente orientado a objetos Web-GUI sin entrar en HTML/JavaScript.

0

Yo recomendaría que utilizaras Cjax Framework 100% PHP Side Ajax Framework.

Nunca verá una línea de JavaScript.

Cjax te permite hacer cosas ajaxy, la mayoría de las veces con una sola línea de código.
¡También Cjax se integra en CodeIgniter, al igual que su dedo se integra en un anillo!

Este es un hilo en los foros de CodeIgniter: http://forum.codeigniter.com/thread-65967.html

Cjax no es exclusivo de CodeIgniter como cualquier sitio web o aplicación puede usarlo, pero no tiene soporte incorporado para ello.

También hay una gran cantidad de documentación: (De CodeIgniter wiki): https://github.com/bcit-ci/CodeIgniter/wiki/ajax-framework-for-codeigniter