Php шаблони - це не складно!

Вирішив трохи підкачати свій навик програмування в PHP. рано чи пізно треба це починати, тим більше що основи PHP я вже знаю давно. В принципі, складнощів ніяких при роботі з PHP я не зустрів, дивно, але мені навіть з першого разу вдалося його встановити під Windows. хоча буквально років 3-4 тому в мене з цим були проблеми :)

Насамперед я вирішив винайти велосипед (свій власний, трьох колісний, з бібікалку і ліхтариком :). ) І зробити більш чи менш зручну можливість відділення PHP коду від дизайну. Власне, про це і піде мова в даному огляді.

Шаблон являє собою звичайний HTML-файл, але крім звичайних html-тегів. він також повинен містити спеціальні відмітки для контенту. Я вирішив зробити це в наступному стилі:

заголовок вікна

Ласкаво просимо!

Це приклад простого шаблону

Звичайний HTML. нічого особливого.

Як бачите, це звичайний HTML-код, проте в 9 рядку розташований «тег» . саме в цьому місці повинен буде з'явитися в результаті вказаний контент. Тут хотілося б відзначити, що рядок в принципі може бути будь-який, однак, для більшої зручності, я зробив обов'язковим наявність . іншими словами, синтаксис визначення блоку контенту наступний:

За рахунок цього, в одному шаблоні може перебувати скільки завгодно блоків контенту.

Клас управління шаблонами

Перейдемо до класу, який буде всією цією справою управляти. За задумом, клас повинен приймати такі параметри:

Це мінімум, але, звичайно ж, кількість параметрів можна запросто збільшити.

Крім цього, клас також повинен склеювати отримані дані воєдино і виводити клієнту. Це трохи схоже на MasterPage в ASP .NET. хоча звичайно до MasterPage ще далеко, але мова зараз не про це.

Але, мабуть, перейдемо до справи, а точніше до тіла класу:

У 18 рядку відбувається ініціалізація класу. У 26 рядку функція, яка отримує зазначений файл шаблону, завантажує його, вставляє контент і повертає результат.

Завантаження файлу шаблону відбувається в 28 рядку, далі 39 рядку проводиться пошук в завантаженому шаблоні тегів . і якщо змінна класу $ title має значення відмінне від NULL. то в 42 рядку, шаблону змінюється на вказаний у змінній $ title текст. Далі, в 48 рядку проводиться пошук блоків контенту. Для визначення блоків контенту використовується асоціативний масив $ content. Потім, в 53 рядку функція виводить отриманий результат.

Збережіть цей клас в окремому файлі, наприклад templateController.php.

Робота з шаблонами

Тепер спробуємо все це справа застосувати в роботі. Насамперед потрібно створити файл шаблону, назвемо його masterPage.html. він буде містити один блок контенту - MainContent.

Схожі статті