• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP i JavaScript w aplikacjach internetowych

Object Storage Arubacloud
0 głosów
752 wizyt
pytanie zadane 11 marca 2018 w PHP przez michh123 Bywalec (2,790 p.)

Witam!

Mam pytanie dotyczące JavaScript i PHP. Ale od początku. Uczę się głównie PHP i jeszcze tydzień temu nie wiedziałem po co stosować wzorce projektowe (m.in MVC), a czytanie literatury o MVC w PHP i próby stworzenia nawet prostej aplikacji wykorzystującej ten wzorzec kończyły się niepowodzeniem.
Szukałem więc pomocy na naszym forum i znalazłem pewien wątek, który poruszał ten problem - problem z załapaniem MVC.

o tym wątku mowa

I dzięki Wam i Waszym wskazówkom postanowiłem się "rzucić na głęboką wodę" i w ten sposób zaczęła się moja przygoda z micro-framework'iem Slim. Po kilku dniach przerabiania kursu i tworzenia swojej pierwszej aplikacji w oparciu o framework (no ok. micro-framework) wreszcie zaczynam powoli rozumieć MVC i Slim, oraz po co się to stosuje i z czym się to "je".
Mam zamiar niedługo uczyć się też JavaScript, więc często czytam różne artykuły odnośnie JS, jego bibliotek i frameworków. Wyczytałem m.in, że niektóre biblioteki/frameworki pozwalają na łączenie się z bazą, dynamiczne ładowanie strony etc. czyli to co de facto robi PHP. Ale jak to wygląda w praktyce? Czy wybór JS+framework lub PHP+framework zależy od tego jaką aplikację tworzymy? Czy można wpleć jeden framework w drugi (np. Symfony+Angular.js)? Czy pisząc w PHP+framework, elementy JS też tworzę z pewnym wzorcem i czy jest to w ogóle poprawne?

Proszę o odpowiedź na nurtujące mnie pytania i z góry dziękuję.
Pozdrawiam!

1 odpowiedź

+2 głosów
odpowiedź 11 marca 2018 przez Tomek Sochacki Ekspert (227,510 p.)
wybrane 12 marca 2018 przez michh123
 
Najlepsza

Przede wszystkim to musisz dobrze zrozumieć rozdział:

PHP === serwer

JS === client (nie mówimy tu o node)

O back-endzie np. w PHP staraj się myśleć jak o wystawieniu jakiegoś API, jakiś danych, które potem front obrabia graficznie. Do tego oczywiście znajomość jakieś bazy danych, ja najczęściej pracuję z MySQL i w większości projektów jest to wg mnie dobra baza.

Jeśli chodzi natomiast o JS to proponuję najpierw nauczyć się samego języka, a biblioteki i frameworki dopiero później. Nie rób błędu wielu początkujących, ucząc się wyłącznie jQuery bo potem w czystym JS szybko możesz się pogubić.

Jeśli chodzi o wzorce to tak nie do końca można wszystko z PHP, Java itp. wprost odnosić do JS. Ale najpierw poznaj dobrze JS, w tym temat prototypów i wtedy sam będziesz w stanie zorientować się co i jak.

niektóre biblioteki/frameworki pozwalają na łączenie się z bazą, dynamiczne ładowanie strony etc. czyli to co de facto robi PHP

Nie do końca. Z poziomu klienta nie połączysz się z bazą danych (no chyba, że mówimy np. o IndexedDB ale to inna historia) - od tego jest back-end. Co do ładowania stron to zależy co masz na myśli. Wydaje mi się, że myślisz tu o technologi Ajax.

1
komentarz 11 marca 2018 przez Kamil Naja Nałogowiec (27,410 p.)
edycja 11 marca 2018 przez Kamil Naja

Przede wszystkim to musisz dobrze zrozumieć rozdział:

PHP === serwer

JS === client

Node.js działa na serwerze.

PHP i Symfony, czy Node.js i inne języki i frameworki backendowe mają zupełnie inny zakres odpowiedzialności od wymienionego przez Ciebie Angulara i innych frameworków frontendowych. 

Backend wyciąga dane z bazy i najczęściej udostępnia je w formacie JSON. Framework na froncie "strzela" w odpowiednie endpointy, które udostępniają mu dane z backendu i pobiera je, a następnie przedstawia w ładnej formie.

Niezależnie od tego, czy używasz na backendzie C#, PHP czy Node, a na frontendzie Angulara czy Reacta, architektura się niewiele zmienia.

Można też tworzyć aplikację, stosując systemy templatek (Twig, Smarty), ale ma to swoje minusy. Fajnie by było, gdyby bardziej doświadczeni użytkownicy wypowiedzieli się, jak sprawdza się w takiej sytuacji stosowanie frameworków front-endowych. 

1
komentarz 12 marca 2018 przez Tomek Sochacki Ekspert (227,510 p.)

Node.js działa na serwerze.

Zgadza się, ale w pytaniu był PHP i bardziej chodziło mi o jasne wyróżnienie serwer-klient, dlatego nie chciałem już mieszać Koledze z node :) ale jak najbardziej masz rację, sam obecnie pracuję z node+React na froncie.

Natomiast co do frontu to kiedyś pracowałem ze Smarty (wraz z frameworkiem CodeIgniter w PHP). Obecnie jest to React z SSR i node i szczerze mówiąc drugi zestaw pasuje mi dużo lepiej. Nigdy jakoś nie przepadałem za PHP. Ważne tylko, aby w przypadku React, VUE itp. w miarę szybko wchodzić w Server Side Rendering.

Co innego natomiast jeśli korzystamy z jakiś CMS, bo tam często nie ma wyboru. Na przykład WP stoi na PHP, Made Simple to też PHP ze Smarty itd.

komentarz 12 marca 2018 przez michh123 Bywalec (2,790 p.)

@Tomek Sochacki, Dziękuję za odpowiedź! Tak, podczas nauki JS mam zamiar się uczyć..... JS, a nie jQuery, czy innych bibliotek :) Chociaż to pewnie też, ale jak już opanuję w pewnym stopniu czysty JS :)

@Kamil Naja nie za bardzo rozumiem Pana wypowiedź, mógłby Pan napisać to jak dla zupełnego laika? I jakie minusy ma stosowanie systemów szablonów typu Twig? Myślałem, że to właśnie dobre podejście do oddzielenia PHP od HTML :O

2
komentarz 12 marca 2018 przez Kamil Naja Nałogowiec (27,410 p.)
Napisz, czego dokładnie nie rozumiesz.

W przypadku podejścia restowego, możemy zupełnie rozdzielić kod PHP od HTML, gdy korzystamy z templatek Twig, kod HTML i PHP jest nadal mocno scalony.
komentarz 12 marca 2018 przez michh123 Bywalec (2,790 p.)
Już rozumiem, po przeczytaniu dokładnie jeszcze raz :)
To podejście restowe, o którym Pan wspomina jest związane z JS? Bo systemów szablonów takich jak Twig używamy tworząc aplikację w PHP. A na czym polega podejście restowe?
1
komentarz 12 marca 2018 przez Kamil Naja Nałogowiec (27,410 p.)
Opisałem to w pierwszej odpowiedzi. Backend i front-end aplikacji funkcjonują jako osobne byty i dane przesyłamy między nimi w formacie JSON.
komentarz 12 marca 2018 przez michh123 Bywalec (2,790 p.)

Dziękuję bardzo Panie Kamilu i Panie Tomku za wyjaśnienie tych kwestii! :)

Pozdrawiam!

Podobne pytania

+2 głosów
1 odpowiedź 653 wizyt
+1 głos
3 odpowiedzi 302 wizyt
0 głosów
1 odpowiedź 284 wizyt
pytanie zadane 2 października 2019 w Sieci komputerowe, internet przez JakSky Stary wyjadacz (14,770 p.)

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...