2013-07-29 15 views
22

Może to nie jest prawdziwe pytanie, raczej dyskusja . Postanowiłem nauczyć się kanciastego, używając prostego zadania, zbudować system blogów. Mam kilka pytań. Żeby sobie wyobrazić, że aplikacja PHP będzie mieć strukturę MVC, więc mam kilka pytań:Backend AngularJS i PHP

  • razie buduję moją back-end tylko jako spokojny aplikacji i korzystania json odpowiedzi na żądanie \ kątowa i php?
  • Co z widokiem w aplikacji php, powinienem użyć ich z ng-init?
  • Routing po stronie serwera lub po stronie klienta?
  • Co z buforowaniem?
  • I wreszcie, ale nie najmniej, gdzie powinienem umieścić logikę na temat danych, które użytkownik wprowadzi?

Czy ktoś może mi podać instrukcje lub wskazówki dotyczące tego, a może przydatne linki do czytania artykułów, łączenia php i kątowego, a może robię to w niewłaściwy sposób?

+0

btw uważam, że jedna strona internetowa oparta na js nie jest przyjazna seo, który może być blogiem. –

Odpowiedz

29

Możesz rozważyć zastosowanie tego typu aplikacji jako DWÓCH aplikacji.

Pierwszy to backend, API. Możesz użyć swojej struktury PHP do zbudowania API, które pozwoli ci na utrzymywanie danych, sprawdzanie poprawności (logika biznesowa), itp ... i na razie zapomnij o interfejsie, budujesz tylko API dla danych backendu.

Druga część aplikacji to nakładka AngularJS. Obejmuje to wszystkie widoki i wszystko, co klient widzi. Nic z tego nie pochodzi z backendu.

Pozwala to na użycie backendu API (bitu PHP) do działania jako magazyn danych, z jego własną walidacją dla bezpieczeństwa, mając jednocześnie bezproblemową obsługę i podstawową walidację strony klienta z AngularJS.

Routing to AngularJS, ponieważ jest to rzeczywisty nakładka, z której korzysta klient.

Buforowanie można wykonać (jeśli to konieczne) w zapleczu, w interfejsie API.

Sprawdzanie poprawności nastąpi zarówno w interfejsie, jak i w backendie, chociaż w razie potrzeby mogą się nieznacznie różnić.

Pamiętaj, że budujesz backend ściśle jako API, bez względu na frontend (tak, jakby była używana więcej niż jedna aplikacja), więc będzie miał swoje własne zasady i logikę walidacji.

Nadzieję, że pomaga.

+0

Więc radzisz używać php tylko jako api? I dlaczego jego zły pomysł miesza widoki php z kątem? – Cawa

+1

@ СашаХарьков - Cóż, nie jestem pewien, czy powiedziałbym, że to zły pomysł per se, ale koncepcyjnie może wprowadzić dużo więcej problemów związanych z pomyłkami i konserwacją, niż początkowo rozwiązałoby. Chodzi o to, że AngularJS dostarczy Ci cały front-end, to aplikacja sama w sobie. Interfejs API zaplecza (w tym przypadku PHP) służy do utrzymywania danych za pomocą operacji CRUD. Ich rozdzielenie pomaga utrzymać kod w stanie umożliwiającym jego utrzymanie i skalowanie. –

+1

dowolny konkretny framework PHP zalecany do budowania tego API zaplecza? – domi

6

Znalazłem bardzo prostą strukturę, która pozwala mi wykorzystać Angular z PHP i spokojne api. Używam Angularjs do wszystkich widoków. Używam restrykcyjnego frameworka PHP API zwanego slim, aby ułatwić komunikację między Angular a modelami PHP, do których używam Doctorine2.

85% mojego kodowania wykonuje się za pomocą Angular (Widoki). 5% za pomocą interfejsu API (kontrolera) i pozostałych 10% konfiguracji logiki biznesowej w modelach. Ogromna separacja obaw i niewiele więcej. Prosty i zwięzły.