Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Jak oddzielić PHP od kodu HTML?
qjam
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 31.07.2011

Ostrzeżenie: (0%)
-----


Witam.

Dzisiaj postanowiłem pierwszy raz od paru lat przysiąść do php. Tak dla treningu, dla zabicia czasu, po prostu z nudów. Kiedyś pisałem jedynie strukturalnie... wychodziły potworki (przy pisaniu bloga) których teraz chciałbym uniknąć. Bardzo chętnie oddzieliłbym PHP od HTMLa (wiem, istnieje Smarty i MVC) jednak nigdy nie ruszyłem programowania obiektowego... stąd moje pytanie, w jaki sposób wy oddzielacie HTML od PHP? Macie jakieś rady? A może macie jakieś linki do nauki OOP? Programowałem hobbistycznie i chciałbym aby tak zostało dlatego nie są to mega ważne projekty... robię to po prostu dla siebie. Czekam na odpowiedzi, pozdro (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #2





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

Ostrzeżenie: (0%)
-----


Cytat(qjam @ 5.04.2014, 14:44:03 ) *
Witam.

Dzisiaj postanowiłem pierwszy raz od paru lat przysiąść do php. Tak dla treningu, dla zabicia czasu, po prostu z nudów. Kiedyś pisałem jedynie strukturalnie... wychodziły potworki (przy pisaniu bloga) których teraz chciałbym uniknąć. Bardzo chętnie oddzieliłbym PHP od HTMLa (wiem, istnieje Smarty i MVC) jednak nigdy nie ruszyłem programowania obiektowego... stąd moje pytanie, w jaki sposób wy oddzielacie HTML od PHP? Macie jakieś rady? A może macie jakieś linki do nauki OOP? Programowałem hobbistycznie i chciałbym aby tak zostało dlatego nie są to mega ważne projekty... robię to po prostu dla siebie. Czekam na odpowiedzi, pozdro (IMG:style_emoticons/default/smile.gif)



niewiem czy dobrze zrozumialem ale jak oddzielic html od php zeby nie komplikowalo to powinienes podac kod jaki masz bo za duzo by tlumaczyc a jak sie pokaze to latwo zrozumiec (IMG:style_emoticons/default/tongue.gif) .
Go to the top of the page
+Quote Post
qjam
post
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 31.07.2011

Ostrzeżenie: (0%)
-----


wiesz... dopiero siadam... (IMG:style_emoticons/default/wink.gif) ale moj kod przypuszczalnie wyglądałby tak:

index.php

  1. <html>
  2. <head>
  3. .....
  4. </head>
  5. <?php
  6. //kod php
  7. ?>
  8. <form method="post">
  9. ...logowanie...
  10. </form>
  11. <?
  12. if(isset($_POST['zaloguj'].....
  13.  
  14. tutaj jakis mysql...
  15. ?>
  16. </html>


taki potworek (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #4





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

Ostrzeżenie: (0%)
-----


Cytat(qjam @ 5.04.2014, 15:03:59 ) *
wiesz... dopiero siadam... (IMG:style_emoticons/default/wink.gif) ale moj kod przypuszczalnie wyglądałby tak:

index.php

  1. <html>
  2. <head>
  3. .....
  4. </head>
  5. <?php
  6. //kod php
  7. ?>
  8. <form method="post">
  9. ...logowanie...
  10. </form>
  11. <?
  12. if(isset($_POST['zaloguj'].....
  13.  
  14. tutaj jakis mysql...
  15. ?>
  16. </html>


taki potworek (IMG:style_emoticons/default/tongue.gif)


ogólnie masz dobrze z tego co podales tylko powinieneś dodać drobne poprawki:

za </head> dodać <body>, przed </html> </body> (działa i bez tego ale zawsze jest pewność),
co do drugiej części php (<?) zamien na <?php ponieważ <? jest wycofywane, a jak dziala kod php w tym to nie cały.
Go to the top of the page
+Quote Post
qjam
post
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 31.07.2011

Ostrzeżenie: (0%)
-----


Doskonale o tym wiem... (IMG:style_emoticons/default/wink.gif) Celowo nie napisałem tego tutaj bo się spieszyłem. Jednak chodzi mi o to czy jest jakiś sposób żeby oddzielić PHP od HTMLa lub zminimalizować jego udział. Tak jak mówiłem wiem co to MVC ale nie znam OOP żeby to stosować, to raz. Dwa, że wiem że w formularzach mogę użyc action='logowanie.php' ale nie wszędzie da się to zrobić...

Ten post edytował qjam 5.04.2014, 14:15:20
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #6





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

Ostrzeżenie: (0%)
-----


Cytat(qjam @ 5.04.2014, 15:15:05 ) *
Doskonale o tym wiem... (IMG:style_emoticons/default/wink.gif) Celowo nie napisałem tego tutaj bo się spieszyłem. Jednak chodzi mi o to czy jest jakiś sposób żeby oddzielić PHP od HTMLa lub zminimalizować jego udział. Tak jak mówiłem wiem co to MVC ale nie znam OOP żeby to stosować, to raz. Dwa, że wiem że w formularzach mogę użyc action='logowanie.php' ale nie wszędzie da się to zrobić...


zminimalizować można if'ami (IMG:style_emoticons/default/tongue.gif) - coś nie zostanie spełnione to nie wykona, zmniejszyć ogólnie można np. Załadować plik przez include etc, OOP chyba na wikibooks najlepiej.
Go to the top of the page
+Quote Post
qjam
post
Post #7





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 31.07.2011

Ostrzeżenie: (0%)
-----


Ty nadal nie wiesz o co chodzi... rzeczywiście dział przedszkole (IMG:style_emoticons/default/smile.gif) ok, nieważne (IMG:style_emoticons/default/wink.gif) dzięki
Go to the top of the page
+Quote Post
viking
post
Post #8





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Najlepiej było by wykorzystać jakiś prosty framework. Ale skoro sam mówiłeś z nudów chcesz się pouczyć to masz wyzwanie teraz (IMG:style_emoticons/default/smile.gif)
Systemy szablonów które mogą ci w tym pomóc:
http://twig.sensiolabs.org/
http://phptal.org/

Dane wejściowe tablice albo obiekty. Smarty, ktoś jeszcze tego używa? (IMG:style_emoticons/default/wink.gif)

Możesz też iść inną drogą i pobawić się we frameworki JS.
http://emberjs.com/ - bardzo silnie MVC i moim zdaniem obecnie wart największej uwagi
http://angularjs.org/ - według mnie śmietnik jak wszystko od Google ale popularny
http://backbonejs.org/

Dane wypełniać tylko na podstawie otrzymanych zmiennych JSON/REST z PHP. Do takiej pracy sprawdzają się dobrze rozwiązania gdzie piszesz bardziej "pod adres" (router gra główną rolę) typu Silex.
Go to the top of the page
+Quote Post
qjam
post
Post #9





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 31.07.2011

Ostrzeżenie: (0%)
-----


Smarty było popularne gdy ja pisałem w PHP ('04-'05?) (IMG:style_emoticons/default/smile.gif) Nie jestem na bieżąco. Właśnie miałem na myśli jakiś system szablonów. Co dają frameworku JS? Widziałem dojo i nieźle wyglądają te okienka. Byłby fajny panel administracyjny (IMG:style_emoticons/default/smile.gif) a te które wymieniłeś? Jakie mają zastosowanie?
Go to the top of the page
+Quote Post
viking
post
Post #10





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Z całą pewnością bedziesz się musiał trochę poduczyć bo 10 lat to przepaść. Większość projektów opiera się o klasy i przestrzenie nazw. Więc co najmniej podstawy są niezbędne. Uważam że dobry byłby dla ciebie właśnie http://silex.sensiolabs.org/ . Nadaje się idealnie do małych projektów stawianych na szybko, można się go w niedługim czasie nauczyć a że bazuje na Symfony to przy okazji czegoś się dowiesz o większym bracie. Frameworki / biblioteki JS. No cóż, musisz popatrzeć na przykłady. Jeśli nie chcesz wchodzić głęboko w PHP mogą zrzucić całą logikę na przeglądarkę z danymi w postaci np JSON od PHP. Jeśli znasz JS będzie to droga na skróty do nauki.
Go to the top of the page
+Quote Post
qjam
post
Post #11





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 31.07.2011

Ostrzeżenie: (0%)
-----


Są jakieś polskojęzyczne teksty związane z tym silexem? Kiedyś próbowałem sił w Kohanie (IMG:style_emoticons/default/wink.gif) Ale po prostu nie ogarnąłem tego...
Go to the top of the page
+Quote Post
viking
post
Post #12





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Google translate?
Po polsku to chyba tylko inny FW http://spawnframework.com/
Go to the top of the page
+Quote Post
PrinceOfPersia
post
Post #13





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----


Cytat
Celowo nie napisałem tego tutaj bo się spieszyłem. Jednak chodzi mi o to czy jest jakiś sposób żeby oddzielić PHP od HTMLa lub zminimalizować jego udział.

to co możesz od ręki zrobić, to zamiast mieszać PHP z MySQL i HTML tak jak wrzuciłeś:
  1. <?php
  2. //kod php
  3. ?>
  4. <form method="post">
  5. ...logowanie...
  6. </form>
  7. <?
  8. if(isset($_POST['zaloguj'].....
  9.  
  10. tutaj jakis mysql...
  11. ?>
  12. </html>

możesz zrobić tak, że w pliku wszystkie obliczenia i dostęp do MySQL robisz na początku, a później dajesz tylko same zmienne:
  1. <?php
  2.  
  3. if(isset($_POST['zaloguj']) {
  4. // tutaj jakis mysql ,np. SELECT user_name FROM .... WHERE. ......
  5. // bla, bla
  6. $userName = $row['user_name'];
  7. }
  8.  
  9. if ($_GET['action'] == 'messages') {
  10. /// jakis mysql...
  11. // bla, bla, bla...
  12. $messages = $row['user_name'];
  13.  
  14. }
  15.  
  16. // a w dalszej części pliku odwołujesz się tylko do zmiennych:
  17. ?>
  18.  
  19. Witamy, dziękujemy za zalogowanie, użytkowniku <?php echo $userName ?>,
  20. <ul>
  21. Twoje wiadomości: <?php foreach($messages as $msg) echo "<li>$msg</li>" ?>
  22. </ul>
  23.  


Tylko, że to jest partyzantka i sposób dla osób naprawdę leniwych (ja tak robiłem jak poprawiałem po kimś kod, i po prostu nie mogłem użyć szablonów), natomiast takie podejście i tak jest ciut lepsze od mieszania kompletnie wszystkiego naraz. No i w przypadku kiedy będziesz chciał przejść na szablon, bardzo łatwo zamienisz po prostu deklaracje, czyli np. wywalisz <?php echo $messages ?>, a napiszesz {{ messages }},czy coś podobnego. Ponieważ kod PHP/MySQL oraz wynikowe zmienne do szablonu($userName, $messages etc.) masz już wstępnie oddzielone.

ale tak naprawdę użycie szablonu to nie jest problem, wystarczy ściągnąć coś, zainstalować, popatrzeć na przykłady w necie.


Cytat
Tak jak mówiłem wiem co to MVC ale nie znam OOP żeby to stosować, to raz.

nikt ci nie każe zaawansowanego OOP robić, zwykle masz tylko jakiś mikrojęzyk szablonów (typu "w klamerkach podajemy nazwę zmiennej: {{ zmienna }}"), musisz je zainicjalizować, podać dane przez funkcję i wyrenderować, cała filozofia.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.03.2026 - 10:24