2008-10-04 9 views
8

Piszę aplikacje webowe PHP od jakiegoś czasu i natknąłem się na bardzo ładne frameworki JavaScript, takie jak JQuery, ExtJS, Scriptaculous itp. Nie mogę powiedzieć tego samego o stronie PHP - Zawsze zakodowałem tę część okna dialogowego klient-serwer od zera.Integracja AJAX i PHP

Użyłem CodeIgniter (http://codeigniter.com/) i jest to miłe, ale nie dotyczy AJAX jako całości - raczej zapewnia sprawdzanie danych wejściowych, manipulację obrazami i niektóre pomocniki wyjściowe.

Czy istnieje standardowa biblioteka/klasa/framework PHP, która zajmuje się integracją z frameworkami JavaScript? Coś, co może przechwytywać odpowiedzi/żądania użytkowników, weryfikować tożsamość i dane wejściowe, zapewniać stan postępu, śledzić sesje, mieć świadomość zdarzeń asynchronicznych itp.

Odpowiedz

9

Urządzenie Zend Framework jest zintegrowane z Dojo Toolkit. Nie korzystałem jeszcze z najnowszego Zend Framework, ale wiem, że w przeszłości okazało się niezawodne.

+0

Chciałem to zasugerować - więc raczej poprowadzę :-) – leek

+0

Zgadzam się ... i chociaż nie korzystałem jeszcze z integracji Dojo, mój kolega ma i wydaje się, że podoba mi się to w przeważającej części. –

4

Może być jeden, ale nie mogę sobie wyobrazić dlaczego. Żądanie AJAX wygląda i działa jak żądanie HTTP z perspektywy serwera. Możesz pobrać i ustawić pliki cookie. Dostępne są wszystkie zmienne środowiskowe, których można się spodziewać po żądaniu HTTP. Wszystkie czasowniki HTTP działają tak samo, jak dowolne z pól nagłówka.

+0

Z tą różnicą, że rzadko ma do powrotu pełnej odpowiedzi HTML. – noah

+0

Ponadto, żądania AJAX są wysyłane do każdego celu pod słońcem - podczas gdy HTTP get/post jest po prostu do pobrania strony HTML. (Nie, że nie mogą być użyte inaczej). –

+0

AJAX używa HTTP, więc nie jest prawdą, że HTTP get/post służy tylko do pobrania strony HTML. Wiesz, jak umieścić wszystkie te znaczniki HTML w swoim pliku PHP? Cóż, nie musisz tego robić. Mimo że akronim mówi Hypertext Preprocessor, możesz użyć PHP do wygenerowania dowolnego tekstu, w tym JSON lub XML. – Glenn

1

Jedyną różnicą w tym, co robię, gdy zwracam JavaScript lub HTML do przeglądarki dla AJAX, jest brak wyprowadzania nagłówków lub dodatkowych danych. (Obsługa błędów Używam błędów wyjściowych podczas debugowania, więc również je wyłączam.)

3

W następnej wersji głównej 1.5 CakePHP pojawi się z jQuery.

2

Sajax to jedna z wielu bibliotek, które zapewniają łatwy sposób łączenia wywołań zwrotnych od strony klienta (JS) do strony serwera (PHP). Inną biblioteką, która robi coś podobnego, jest JPSpan, jednak nie jestem pewien, czy nadal jest aktywnie obsługiwany. Przeprowadziłem jedynie drobne eksperymenty z tymi dwiema bibliotekami, więc twój przebieg może się różnić.

2

Korzystanie z biblioteki jest dobre dla wygody, gdy zrozumiesz koncepcję i prawdopodobnie to zrobisz, ale dla innych czytających to sugeruję zrobienie tego ręcznie kilka razy i naprawdę zrozumienie tego. Polecam również książkę Bulletproof AJAX. Jest dość krótki, dobrze napisany i opisuje nie tylko, jak używać AJAX, używając PHP jako języka programowania, ale także jak tworzyć strony korzystające z AJAX, ale nadal działa dobrze, jeśli użytkownik ma wyłączoną obsługę JavaScript.

0

Tak, PHP może wyprowadzać XML i JSON dla Ajax, ale nie wszystkie frameworki PHP obsługują JSON/XML równie dobrze.

Na przykład: Wpadłem na problem w Drupal (4.7), w którym sesje PHP zostałyby usunięte po wyprowadzeniu odpowiedzi JSON. (Kod wyjściowy HTML był jawnie zamykający sesję, co było wymagane lub sesja zostałaby wymazana.)

Chciałbym również znać ramy PHP, które ułatwiają zarządzanie kodem javascript. Nawet coś podstawowego, takiego jak włączenie jQuery tylko na stronach, które tego wymagają. Lub pomaga w zarządzaniu minimalizacją/pakowaniem kodu javascript.

0

Ułaskawienie za umieszczenie na starym pytaniu, ale stosunkowo nowy framework Agile Toolkit jest idealną odpowiedzią na OP.

Umożliwia tworzenie w pełni zorientowanego obiektowo interfejsu GUI WWW bez przechodzenia do HTML/JavaScript.

0

Zdecydowanie zaleca się użycie Cjax Framework 100% PHP Side Ajax Framework.

Nigdy nie zobaczysz linii JavaScript.

Cjax pozwala robić rzeczy ajaxy, przez większość czasu z jedną linią kodu.
Również Cjax integruje się z CodeIgniter, podobnie jak twój palec integruje się w pierścień!

To jest wątek na forach CodeIgniter: http://forum.codeigniter.com/thread-65967.html

Cjax nie jest wyłącznie dla CodeIgniter jak każdej strony internetowej lub aplikacji można go używać, ale ma wbudowane wsparcie dla niego.

Istnieje również wiele dokumentacji: (Z CodeIgniter wiki): https://github.com/bcit-ci/CodeIgniter/wiki/ajax-framework-for-codeigniter