Wpis z mikrobloga

Hej, mam jedno pytanie dotyczące połączenia PHP z HTML.

Załóżmy, że chciałbym sobie zrobić prostą aplikacje internetową jak np Dodawanie Notatek, tj. mamy system logowania i rejestracji, po zalogowaniu mamy dostęp do listy stworzonych przez nas notatek, możemy dodawać, edytować i usuwać dodane już notatki.

Chciałbym wykorzystać do stworzenia aplikacji tylko czystego HTML, CSS, JS, PHP oraz system MySQL i PHPMyAdmin z XAMPPa.

Jak w takiej sytuacji użyć PHP do wyświetlania treści w przeglądarce, czyli jak dobrze połączyć PHP z HTML?

Wiem, że najbardziej prymitywna metoda to po prostu "mieszanie" kodu php z html i wstawianie co chwile wstawek <?php ?>, jednak z tego co wiem, to robiło się tak bardzo dawno temu i jest to obecnie zła praktyka, bo powinno się oddzielać kod php od html, czyli oddzielać warstwę logiki aplikacji od warstwy prezentacji (tak samo jak powstał język css, by oddzielić warstwę prezentacji od struktury html).

Drugi sposób to używanie tzw. szablonów. Z tego co się zdążyłem zorientować, to możemy tworzyć własne pliki z szablonami lub skorzystać z gotowego systemu jak np Smarty czy Twig.

I teraz chciałbym się zapytać, czy lepiej pisać własne pliki z szablonami, czy używać np systemu Smarty? A może lepiej poznać obydwa sposoby? Na początku myślałem o tym, żeby użyć właśnie Smarty, ale np. w jednym z starych wpisów na wykopie znalazłem taki komentarz:

Żadne. Szablony były między innymi odpowiedzią na problemy z wydajnością PHP i pozwalały na cache'owanie. Dziś ten problem nie istnieje, PHP samo w sobie jest już wystarczająco wydajne, a tanie i szybkie serwery są ogólnodostępne. Zwróć uwagę, że wiele dużych frameworków, jak np. nieustannie rozwijany Zend Framework nie dają same z siebie żadnego systemu szablonów. Pytanie o czytelność widoków pozostaje niestety otwarte, a dla wielu (w tym i dla mnie) używanie wstawek php if(): ? czy php echo $val; ? nie jest satysfakcjonujące, więc jeśli już, to polecam PHPTAL, ale tendencja jest taka jak napisałem.


Co prawda jest to tylko jeden komentarz, ale w sumie już sam nie wiem jak powinienem to zrobić. Tak więc czy może mi ktoś powiedzieć, jak w przypadku gdy piszę aplikację wykorzystującą czystego php powinienem połączyć php z html do wyświetlania widoków w aplikacji?

#php #naukaprogramowania #frontend #backend #webdev
  • 7
  • Odpowiedz
@maciorqa: to o czym piszesz zrobisz dużo łatwiej i będzie przyjaźniejsze dla użytkowników jeżeli będzie w JS. Do wyboru React, Vue, albo inny framework, który wyszedł w tym tygodniu i jest trendy. Praktycznie każdy z nich ma swój tutorial "aplikacja todo", który robi te notatki. A potem po stronie php to obsłużysz i nie będziesz musiał dotykać htmla.

Gdybym miał to rzeźbić od zera to pewnie bym kombinował z Twigiem (i
  • Odpowiedz
@maciorqa: Jeden rabin powie tak, drugi nie. Nie ma na to dobrej odpowiedzi.

Wszystko zależy od potrzeb, umiejętności, progu wejścia i pewnie wielu innych czynników Przykład z Zend'em (obecnie Laminas) nie jest dobry. Framework ten jest z jakiegoś powodu "goły", takie były jego złożenia, aby korporacyjnie mógł sobie każdy go rozwijać w swoją stronę, nie ma też Doctrin'a i wielu innych rzeczy, które są w już Symfony, czy nawet w Laravel.
  • Odpowiedz
@Serghio Plusik. Z wykorzystaniem symfony, twiga i narzędzi które są łatwo opisane np. do tworzenia logowania, wrzucania plików itp siekniesz taką aplikację @maciorqa w 1 dzień intensywnej pracy.

PS. #!$%@?ć smarty.

Jakbyś się zdecydował na ten krok to pisz tutaj to mogę Ci cośtam podpowiedzieć jakbyś miał jakiś problem z Symfony.
  • Odpowiedz
  • 0
@Phatee: Chodzi o to, że ja dopiero zaczynam się uczyć php i chciałem najpierw nauczyć się czystego php.

Po nauczeniu czystego php chciałem zrobić jakieś proste projekty i po prostu nie wiem, jak z php przesłać do informacje do html i wygenerować widok strony, jakbym nie chciał korzystać z żadnych gotowych rozwiązań, nie licząc systemu szablonów. Wiem, że mogę od biedy mieszać html z php, ale nie chce tak robić, bo
  • Odpowiedz
i po prostu nie wiem, jak z php przesłać do informacje do html i wygenerować widok strony, jakbym nie chciał korzystać z żadnych gotowych rozwiązań, nie licząc systemu szablonów


@maciorqa: https://symfony.com/doc/4.1/templating/PHP.html

Wiem, że mogę od biedy mieszać html z php, ale nie chce tak robić, bo tak jak napisałem jest to zła praktyka.


@maciorqa: aktualną praktyką jest tak jak Ci napisali wyżej, albo totalna separacja: front w javascript, PHP tylko
  • Odpowiedz
  • 1
@maciorqa: Mieszanie php z html to nie jest zła praktyka sama w sobie - jedne sposoby są tylko wygodniejsze od innych, ale w kontekście "dobrych praktyk" ważny jest nie sam sposób zamiany struktury danych w stringa, a to w jaki sposób aplikacja kontroluje przepływ danych. Taki szablon klejący htmla powinien dać się zastąpić przez serializację suchej struktury danych (json). Na przykład gdzieś w kontrolerach aplikacji możesz mieć coś takiego:

$body =
  • Odpowiedz