Niejeden programista nie raz przeklął przeszkadzające się z kodem tagi HTML jak również niejeden projektant nie mógł dobrze pracować przez kod PHP który z powodzeniem mu przeszkadza… Ten artykuł pomaga zaradzić temu problemowi.
Wiadomo, że kod HTML przeplatający się z kodem PHP jest bardzo nie czytelny, jest sporo metod pozwalających uprościć sobie ten problem, ale każda z metod robi to w różnym stopniu. W artykule tym przedstawię kilka metod oddzielanie kodu PHP od HTML, oczywiście jedne sposoby są lepsze a inne gorsze, ale to w zależności od potrzeb.
Oto niektóre z nich, które zamierzam omówić:
– Standardowy
– całościowy
– wpleciony
– Implementacja
– Fast Template
Standardowy:
Sposób standardowy to nic innego jak pisanie kodu PHP i HTML w jednym, ale są dwa główne rodzaje: całościowy i wpleciony. Całościowy opiera się na wplataniu znaczników HTML w kod PHP, natomiast wpleciony na wplataniu kodu PHP pomiędzy znaczniki HTML. Kod w zapisie całościowym wygląda przykładowo tak:
| <?php $imie = „Jan”; $nazwisko = „Kowalski”; echo „<table>”; echo „<tr>”; echo „<td>Imię</td>”; echo „<td>Nazwisko</td>”; echo „</tr>”; echo „<tr>”; echo „<td>echo $imie</td>”; echo „<td>echo $nazwisko</td>”; echo „</tr>”; echo „</table>”; ?> |
dałoby to w wyniku:
| ImięNazwisko Jan Kowalski |
Natomiast kod w zapisie wplecionym wyglądałby tak:
| <?php $imie = „Jan”; $nazwisko = „Kowalski”; ?> <table> <tr> <td>Imię</td> <td>Nazwisko</td> </tr> <tr> <td><?php echo $imie ?></td> <td><?php echo $nazwisko ?></td> </tr> </table> |
wynik byłby identyczny:
| ImięNazwisko Jan Kowalski |
Można to także zrobić definiując wcześniej funkcje wyświetlające:
| <?php function wys( $co ) { echo ${$co}; } $imie = „Jan”; $nazwisko = „Kowalski”; ?> <table> <tr> <td>Imię</td> <td>Nazwisko</td> </tr> <tr> <td><?php wys(„imie”); ?></td> <td><?php wys(„nazwisko”); ?></td> </tr> </table> |
Wynik dalej byłby identyczny:
| ImięNazwisko Jan Kowalski |
To tyle, jeśli chodzi o sposób standardowy.
Implementacja
. Polega ona na zdefiniowaniu pliku wejściowego, a następnie dołączeniu go do kodu za pomocą include() lub require(). Na przykład cały nagłówek, który jest wspólny dla całego serwisu, wraz z atrybutami meta mógłby wyglądać tak:
| <–!head.html–> <!doctype html public „-//W3C//DTD HTML 4.0 Transitional//EN”> <html> <head> <meta http-equiv=”Content-type” content=”text/html; charset=ISO-8859-2″> <meta name=”Keywords” content=”słowa kluczowe”> <title>tytul</title> </head> <body> |
oraz stopka:
| <–!foot.html–> </body> </html> |
Teraz plik z kodem:
| <!–index.php–> <?php include(„head.html”); //treść strony w PHP include(„foot.html”); |
równie dobrze można dołączać kod PHP do pliku HTML (ale z rozszerzeniem PHP):
| <!–formularz.php–> <?php echo „<form name=\”formularz\” action=\”$PHP_SELF\” method=\”post\”>”; echo „<input type=\”text\” name=\”adres\” value=\”http://\”>”; echo „<input type=\”submit\”>”; echo „</form>”; ?> |
plik z kodem HTML wyglądał by następująco:
| <!–index.php–> <!doctype html public „-//W3C//DTD HTML 4.0 Transitional//EN”> <html> <head> <meta http-equiv=”Content-type” content=”text/html; charset=ISO-8859-2″> <meta name=”Keywords” content=”słowa kluczowe”> <title>tytul</title> </head> <body> //treść strony <?php include(„formularz.php”); ?> //dalsza treść strony </body> |
tak się prezentuje metoda implementacji.
FastTemplate
System szablonów. Jest to bardzo efektywna a zarazem efektowna metoda, ponieważ pozwala zapisywać kod PHP w oddzielnym pliku a kod HTML w oddzielnym, tyle, że zawierający specjalne tzw. Tagi Szablonów. Jednak przygotowanie takiego systemu szablonów jest nieco trudniejsze i omówię je w oddzielnym artykule. W systemie tym plik szablonu ma zazwyczaj rozszerzenie „tpl” i jest to plik, który zawiera kod HTML z tagami szablonu. Przykładowy plik .tpl.
| <!–example.tpl–> <html> <head> <meta http-equiv=”Content-type” content=”text/html; charset=ISO-8859-2″> <meta name=”Keywords” content=”słowa kluczowe”> <title>{tytul}</title> </head> <body> //treść strony Mam {moj_wiek} lat. I jestem uczniem {moja_klasa} klasy. </body> |
Tagi szablonów są zawarte pomiędzy nawiasy szaścienne „{” i „}”. Do tego jest potrzebny plik, który będzie wczytywał ten szablon. W pliku tym powinna być zdefiniowana klasa, która będzie odczytywała wartości z nawiasów i odpowiednio je interpretowała. W ten sposób np. mój wiek może się zmieniać wraz z klasą bez żadnej ingerencji w zawartość strony. Dodatkową zaletą jest czytelność kodu. Gotowym i bardzo znanym systemem obsługi szablonów jest Smarty dostępny na stronie http://smarty.php.net. Jeśli kogoś interesuje ta metoda zapraszam do przeczytania artykułu na temat tego jak działają FastTemplate lub artykułu o Smarty.
