Korzystając z tej strony zgadzasz się z polityką prywatności i regulaminem.
Akceptuj
WebInside.plWebInside.plWebInside.pl
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
Szukaj
  • Kontakt
  • Forum
WebInside.pl © 2023.
Czytasz: Zasady działania FastTemplate
Udostępnij
Zaloguj się
Powiadomienia
Aa
WebInside.plWebInside.pl
Aa
Szukaj
  • Strona główna
  • Aktualności
  • Technologie webowe
  • Publicystyka
  • E-marketing
  • Poradniki
  • AI
  • Technologie
  • Artykuły partnerskie
  • Więcej
    • Kontakt
    • Mapa strony
Masz już konto? Zaloguj się
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
WebInside.pl © 2023.
WebInside.pl > Technologie webowe > Zasady działania FastTemplate
Technologie webowe

Zasady działania FastTemplate

WebInside.pl
Ostatnia aktualizacja: 02.12.2003
WebInside.pl
Udostępnij
Udostępnij

FastTemplate jest systemem szablonów dla PHP. Kod PHP przeplatający się z tagami HTML jest nieczytelny, trudny w konserwacji i eksploatacji. System szablonów stanowi świetne wyjście z takiej sytuacji.

Pozwala oddzielić kod PHP od tagów HTML, poza Tagami szablonu.

Ogólnie przyjętym rozszeżeniem dla plikówz szablonem jest „.tpl” i tego najlepiej się trzymać, aby wiadomo było, o co chodzi. W pliku z szablonem (z rozszerzeniem .tpl) są zawarte tagi HTML wraz z tzw. tagami szablonu. Tgi szablonu zdefiniujesz sam przy tworzeniu klasy dla twojego szablonu. Tagi szablonu są zawarte w ogranicznikach, w tym artykule zastosuję nawiasy sześcienne jako ograniczniki „{” i „}”. Przykładowy plik z szablonem wyglądałby następująco:

<!–szablon.tpl–>
<html>
<head>
<meta http-equiv=”Content-type” content=”text/html; charset={kodowanie}”>
<title>{tytul}</title>
</head>
<body>
Mam na imię: <b>{moje_imie}</b>.<br>
Mam {moj_wiek} lat.
</body>
</html>

Prawda, że czytelne… Tagi w takim dokumencie nazywa się też wzorcami. Gdy mamy jeż plik szablonu potrzebna jest teraz aplikacja, która będzie przetwarzała wzorce (Tagi Szablonu) stworzymy do tego odpowiednią klasę. Klasa powinna wczytywać plik ze wzorcami (szablon), powinna posiadać metodę, dzięki której będzie można inicjować zmienne wraz z wartościami, metodę, która będzie zastępowała wzorce odpowiednim kodem, oraz metodę, która wyświetli przetworzony szablon. Trzeba się jeszcze zastanowić, co jak będzie działać, klasa powinna na wejściu wczytywać plik szablonu. Każdy szablon będzie posiadał osobnym plik ze zdefiniowaną klasą i zawartym kodem dla tego szablonu, więc z tym nie będzie problemu. Powinien być do tego zdefiniowany konstruktor. Zamiana wzorców w pliku z szablonem może odbywać się na kilka sposobów, można zastosować funkcję str_replace() lub substr_replace(), jednak w przypadku podania większej ilości wzorców może się to okazać nie efektywne gdyż za każdym razem trzeba by sprawdzać szablon od nowa. Można podzielić szablon za pomocą funkcji explode() ustawionej na separator „{” a następnie jeszcze raz ustawionej na separator „}”, ale podobnie jak poprzednio przysporzyłoby to wiele kłopotów. Ostatnią możliwą metodą, której jednak bym również nie zalecał (bo są lepsze) jest zastosowanie ereg_replace lub eregi_replace, ale tutaj również trzeba się nagimnastykować. Według mnie jedną z najefektywniejszych metod jest użycie funkcji do obsługi wyrażeń regularnych Perla preg_replace(). Funkcja zapisująca dane powinna móc pobierać wartości w postaci tablicy i zwykłej zmiennej, jako że w przypadku zmiennej potrzebne będą dwie wartości: nazwa zmiennej i jej wartość, a w przypadku tablicy jedna: tablica z indeksami w postaci nazw i wartościami w postaci wartości, to druga wartość powinna być ustawiona na domyślną. W związku z tym także wewnątrz metody powinno być sprawdzenie czy podany argument (tylko pierwszy) jest tablicą. Jeśli chodzi o metodę wyświetlającą wynik można zrobić ją oddzielnie, ale można także wyświetlić wynik zaraz po zamianie wzorców, jeśli jednak preferujesz czytelniejszą wersję powinieneś zapisać wynik zamiany a następnie wywołać go oddzielnie, ja jednak posłużę się bardziej wydajniejszą wersją wyświetlę wynik zaraz po zamianie wzorców. Tak więc z założeń nasza klasa powinna wyglądać następująco:

class Szablon
{

//ustawiam dwie zmienne
//pierwsza będzie przechowywała plik z szablonem

var $plik_szablonu;

//druga będzie przechowywała dane wykorzystane we wzorcach

var $dane; //Uwaga zmienna ta jest tablicą, wypada to zainicjować można to zrobić tutaj
//w postaci: var $dane = array(); zalecana jest jednak definicja zmiennych
//w konstruktorze, tak też zrobię

function Szablon ( $plik ) //konstruktor dla klasy szablon
{
if ( file_exists( $plik ) )
{
$this->plik_szablonu = file(’$plik’);
$this->plik_szablonu = implode(”, $this->plik_szablonu);
}
}

function zapisz( $nazwa, $wartosc=” ) //jak wcześniej wspomniałem druga zmienna
// teraz trzeba sprawdzić argumenty //powinna mieć wartość domyślną, na wypadek
if ( is_array( $nazwa ) ) //gdyby argument był tablicą
{
$this->dane = array_merge($this->dane, $nazwa); //jeśli tablica
} elseif ( !empty($wartosc) ) {
$this->dane[$nazwa] = $wartosc; //jeśli zmienna z wartością
}
}

//ostatnia funkcja będzie zamieniała wzorce oraz je wyświetlała, jeśli chcesz użyć oddzielnej funkcji do wyświetlania, zdefiniuj jeszcze jedną właściwość, a następnie w metodzie, którą teraz zdefiniuję zapisz wynik do zdefiniowanej właściwości, a następnie zdefiniuj jeszcze jedna metodę, która będzie zwracała tylko właściwość z przetworzonym szablonem

function wyswietl()
{
return preg_replace( „/{([^}]+)}/e”, „$this->dane[„1″]”, $this->plik_szablonu );
//metoda ta dopasuje wzorzec do indeksu w tablicy $dane, a następnie zastąpi go odpowiednią wartością, na koniec zwróci gotowy, już uzupełniony szablon.
}

To tyle, jeśli chodzi o przygotowanie, korzystanie z tego jest bardzo łatwe, dołączamy plik z przygotowaną wcześniej klasą Szablon, tworzymy egzemplarz tej klasy, dodajemy wartości przy pomocy metody dodaj a na koniec wyświetlamy wynik, w praktyce wygląda to tak:


<?php
require(„szablon.php”); //plik z klasą Szablon
$szab = new Szablon(„index.tpl”); //plik z szablonem
//teraz dodaję wartości, np.:
$szab->zapisz(„tytul”, „Moja strona”);
//można dodać też tablicę:
$szab->zapisz(array(„moj_wiek” => „17”, „moje_imie” => „Wojtek”));
//na koniec wywołujemy gotowy szablon przy pomocy echo() lub print()
echo $szab->wyswietl();
?>

I gotowe, teraz można to uruchomić podając za szablon plik podany dla przykładu na początku i wszystko powinno działać.

Jest to bardzo efektywne i proste, a przede wszystkim pozwala oddzielić kog HTML od kodu PHP, a przecież o to chodziło. Nie jest to oczywiście wszystko w tym temacie, można także implementować własne funkcje do innych celów, można wykorzystywać wzorce do wywoływania funkcji, lub dodać własne metody do obsługi szablonów, ale to wszystko kwestia własnego widzimisie i pozostawiam to wam.

Są oczywiście gotowe systemy obsługi szablonów, w tym wypadku polecam Swarty, jest dobrze dopracowane i ma dużo możliwości, ale o tym w innym artykule.

Może Cię zainteresować

Sprawdź, jak zostać testerem oprogramowania lub Java developerem! Poznaj kursy online!

Architektura globalnego e-commerce: Jak zbudować sklep gotowy na podbój świata?

Java obchodzi 30. urodziny – język programowania który zmienił świat technologii

Jak zacząć projektować aplikację, nie mając gotowego pomysłu?

Serwer dla małej firmy – czym kierować się przy jego wyborze?

WebInside.pl 2003-12-02 2003-12-02
Udostępnij ten artykuł
Facebook Twitter Kopiuj link Wydrukuj
Udostępnij
Poprzedni artykuł Odtwarzacze plików multimedialnych
Następny artykuł Krótki wstęp do webmasterstwa
Zostaw komentarz lub opinię

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Najnowsze artykuły

Procesor AMD Ryzen 7
Najlepsze procesory z pamięcią 3D V-Cache: Wydajność dla graczy i profesjonalistów
Technologie
Jak przygotować sklep internetowy na automatyzację obsługi klienta?
Artykuły partnerskie
the nvidia logo is displayed on a table
Nvidia przyłapana? Gigant AI chciał kupić miliony pirackich książek
AI Aktualności
Najczęstsze błędy w SMS marketingu: jak nie przepalić budżetu?
E-marketing
4 najczęstsze cyberzagrożenia w przemyśle
Technologie
Jak uratować zaschnięty tusz do drukarki? Skuteczne domowe sposoby i porady
Poradniki
Model 3D jako wspólne źródło danych dla projektu, produkcji i montażu
Artykuły partnerskie
Dlaczego wideo z telefonu sprzedaje na TikToku lepiej niż profesjonalne spoty?
Artykuły partnerskie
Dwa ekrany zawsze pod ręką – zalety korzystania z monitora przenośnego na co dzień
Technologie
Rola nowoczesnych technologii w procesie rehabilitacji
Artykuły partnerskie
banner
Chcesz umieścić swoją reklamę w portalu WebInside.pl?
Skontaktuj się z nami, a zaproponujemy interesujące formy reklamy.
Skontaktuj się

Inne polecane artykuły

Technologie webowe

Sprawdź, jak zostać testerem oprogramowania lub Java developerem! Poznaj kursy online!

5 min czytania
Technologie webowe

Architektura globalnego e-commerce: Jak zbudować sklep gotowy na podbój świata?

7 min czytania
MacBook Pro showing programming language
Technologie webowe

Java obchodzi 30. urodziny – język programowania który zmienił świat technologii

9 min czytania
AktualnościTechnologie webowe

Jak zacząć projektować aplikację, nie mając gotowego pomysłu?

9 min czytania
woman in black top using Surface laptop
Technologie webowe

Serwer dla małej firmy – czym kierować się przy jego wyborze?

5 min czytania
Technologie webowe

Jaki hosting wybrać pod Laravel? Kompleksowy przewodnik dla twórców aplikacji webowych

6 min czytania
programming language
Technologie webowe

Kaskadowość w CSS – wszystko, co musisz wiedzieć

7 min czytania
two women talking while looking at laptop computer
Technologie webowe

Darmowe kreatory stron WWW – stwórz swoją stronę w godzinę

14 min czytania
//

WebInside.pl – portal technologiczny. Aktualności ze świata technologii, webmastering, marketing internetowy, AI, poradniki.

 

Partnerzy

Wszystkie kategorie

  • AI
  • Aktualności
  • Artykuły partnerskie
  • E-marketing
  • e(Biznes)
  • Poradniki
  • Publicystyka
  • Technologie
  • Technologie webowe

Ostatnio dodane

  • Najlepsze procesory z pamięcią 3D V-Cache: Wydajność dla graczy i profesjonalistów
  • Jak przygotować sklep internetowy na automatyzację obsługi klienta?
  • Nvidia przyłapana? Gigant AI chciał kupić miliony pirackich książek
  • Najczęstsze błędy w SMS marketingu: jak nie przepalić budżetu?

Kontakt

Chcesz się z nami skontaktować? Jesteś zainteresowany reklamą lub artykułem sponsorowanym?

Skorzystaj z formularza kontaktowego lub napisz do nas na kontakt@webinside.pl

WebInside.plWebInside.pl
WebInside.pl © 2023 | Mapa strony | Forum | Polityka prywatności
Witaj ponownie!

Zaloguj się do swojego konta

Zapomniałeś hasła?