AngularJS jest bardzo potężny, jeśli chodzi o interaktywne powiązanie HTML5 i model. Z drugiej strony frameworki PHP, takie jak Yii, umożliwiają szybkie, dobrze zorganizowane, bezpieczne i wydajne tworzenie aplikacji internetowych. Obie technologie zapewniają wyrafinowane środki dostępu do danych, iteracji i układu strony.
Czy łączenie tych dwóch podejść („konfiguracja strony” po stronie klienta i po stronie serwera) jest dobrą czy złą praktyką, czy raczej jest to sprzeczne ze znaczeniem interaktywnych, płynnych aplikacji internetowych HTML5 AJAX?
Nie mówię o generowaniu JS za pomocą PHP ( zobacz to pytanie ) - mówię o wygenerowaniu widoku, który będzie wykorzystywał AngularJS.
Wiem również, że strona AngularJS powinna (lub może) komunikować się z serwerem za pośrednictwem usług REST, aby pobierać dane ( zobacz to pytanie ) zamiast pobierać je na przykład bezpośrednio ze zmiennych PHP. Ale wydaje mi się, że wygodniejsze wydaje się zaprojektowanie "ramki" dla całej aplikacji internetowej oddzielnie w PHP (np. Zbudowanie menu głównego lub obsługa autoryzacji / sesji itp.)
Odpowiedzi:
Wygląda na to, że programowanie w PHP może być wygodniejsze, jeśli pozwolisz, aby powstrzymało Cię to przed wykorzystaniem pełnego potencjału aplikacji internetowych.
Rzeczywiście jest możliwe renderowanie części i całych widoków w PHP, ale nie polecałbym tego.
Aby w pełni wykorzystać możliwości HTML i javascript do stworzenia aplikacji internetowej, to znaczy strony internetowej, która działa bardziej jak aplikacja i w dużym stopniu opiera się na renderowaniu po stronie klienta, należy rozważyć pozostawienie klientowi pełnej odpowiedzialności za zarządzanie stanem i prezentacją. Będzie to łatwiejsze w utrzymaniu i będzie bardziej przyjazne dla użytkownika.
Poleciłbym ci bardziej komfortowe myślenie w podejściu bardziej skoncentrowanym na API. Zamiast wypisywać PHP wstępnie wyrenderowany widok i używać angular do zwykłej manipulacji DOM, powinieneś rozważyć wypisanie przez zaplecze PHP danych, które powinny być wykonywane na RESTFully, i udostępnienie ich przez Angular.
Używanie PHP do renderowania widoku:
/user/account
Jak ten sam problem można rozwiązać za pomocą podejścia zorientowanego na API, wyprowadzając JSON w następujący sposób:
api/auth/
aw Angular można zrobić get i obsłużyć stronę klienta odpowiedzi.
Połączenie strony klienta i serwera w sposób, który zaproponowałeś, może być odpowiednie dla mniejszych projektów, w których konserwacja nie jest ważna i jesteś jedynym autorem, ale skłaniam się bardziej w kierunku opartym na API, ponieważ będzie to bardziej poprawne oddzielenie problemów i woli łatwiejsze w utrzymaniu.
źródło
a wall of javascript
? Jestem nowy w świecie API Angular / JS po latach renderowania PHP, więc ta dyskusja jest dla mnie interesująca.