Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

PHP: Prosty system szablonów

poniedziałek,

PHP: Prosty system szablonów

Projektowanie prostego systemu szablonów w PHP z możliwością kompilacji i wstawienia zmiennych wymaga trochę więcej pracy, ale jest to dobre ćwiczenie w celu zrozumienia, jak działają bardziej zaawansowane systemy szablonów. Prezentowany niezbyt złożony system szablonów jest elastyczny i można go rozwijać, dodając więcej funkcjonalności, jak np. obsługę pętli czy warunków, a także ulepszyć obsługę błędów i wydajność. W kolejnym materiale „PHP: Udoskonalony system szablonów” możesz poznać sposób na rozwinięcie prezentowanego przykładu.

Implementacja

Struktura katalogów

Utwórz prostą strukturę katalogów:

/szablony
    /class
        Template.php
    /templates
        template.php

Tworzenie klasy obsługi szablonów

Stwórz plik PHP, który będzie zawierał klasę szablonu. Ta klasa będzie odpowiedzialna za ładowanie szablonu i wstawianie do niego zmiennych.

Klasa Template.php

class Template {
    protected $template;
    protected $variables = array();

    public function __construct($template) {
        $this->template = $template;
    }

    public function set($key, $value) {
        $this->variables[$key] = $value;
    }

    public function render() {
        if(file_exists($this->template)) {
            $content = file_get_contents($this->template);

            foreach($this->variables as $key => $value) {
                $content = preg_replace('/{' . $key . '}/', $value, $content);
            }

            return $content;
        }
        return "";
    }
}

Tworzenie przykładowgo szablonu

W katalogu /templates utwórz plik szablonu, który będzie zawierał znaczniki zmiennych do zamiany.

Plik template.php

<html>
<head>
    <title>{title}</title>
</head>
<body>
    <h1>{headline}</h1>
    <p>{content}</p>
</body>
</html>

Używanie systemu szablonów

Teraz możesz użyć klasy Template do generowania stron z dynamicznymi danymi.

Plik index.php

W głównym katalogu projektu utwórz plik index.php.

include 'class/Template.php';

    $template = new Template('templates/template.php');
    $template->set('title', 'Moja strona');
    $template->set('headline', 'Witaj na mojej stronie');
    $template->set('content', 'To jest przykładowa zawartość strony.');

echo $template->render();

Jak to działa?

  1. Klasa Template – zawiera metody pozwalające na odczyt plik szablonu oraz ustawienie zmiennych i ich wartości, a także na renderowanie szablonu poprzez zastąpienie znaczników zmiennych odpowiednimi wartościami.
  2. Wstawianie zmiennych – użycie wyrażeń regularnych (regex) do wyszukiwania i zastępowania znaczników zmiennych w szablonie ich odpowiednimi wartościami.
  3. Renderowanie szablonu – metoda render klasy Template zastępuje wszystkie znaczniki w szablonie odpowiednimi wartościami i zwraca gotową treść do wyświetlenia.

Artykuł: Konkurs z Języka Angielskiego Zawodowego

Konkurs z Języka Angielskiego Zawodowego

Artykuł: Testujemy kontroler ARGB

Testujemy kontroler ARGB

Artykuł: Olimpiada Zdrowia PCK

Olimpiada Zdrowia PCK

Artykuł: Zostań dawcą szpiku!

Zostań dawcą szpiku!

Artykuł: Przeglądarka Vivaldi

Przeglądarka Vivaldi

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły