#phpchina开户#
Smarty всегда считался лишней вещью. Я думаю, что люди, которые думают, что Smarty избыточен, избыточны... Давайте не будем больше об этом говорить. Сегодня я научу вас писать шаблонизатор, чтобы каждый мог написать собственный шаблонизатор. После прочтения этой статьи ваше понимание Smarty станет лучше. Мой шаблонизатор называется Stupid (что означает «глупый»), мне не нравятся слишком умные вещи!
Шаблонизатор Stupid состоит из трех файлов: глупый.класс.php, глупый_парсер.класс.php, глупый_отладчик.класс.php.
Задачей Stupid.class.php является установка переменных, путей к шаблонам и функций отображения, Stupid_parser.class.php используется для компиляции файлов шаблонов, а Stupid_debugger.class.php используется для отладки.
Хорошо, давайте сейчас напишем глупый.class.php.
1. Создайте новый файл PHP с именем глупый.класс.php.
Наш класс называется Stupid. Давайте сначала спроектируем переменные-члены.
Переменные-члены включают: $_tpl_vars, $_tpl_file, $_parser, $_debugger;
$_tpl_vars: используется для сохранения переменных шаблона;
$_tpl_file: используется для сохранения имени файла шаблона;
$_parser: тот, который сохраняет объект StupidParser, является скомпилированным объектом;
$_debugger: объект StupidDebug сохраняет объект отладки;
ниже определены две константы, которые используются для хранения папки шаблона и папки компиляции:
define('TPL_DIR', './templates/');
define('TPL_C_DIR', './templates_c/');Начать
кодирование>>>
<?php
define('TPL_DIR', './templates/');
define('TPL_C_DIR', './templates_c/');
класс Stupid {
частный $_tpl_vars;
частный $_tpl_file;
частный $_parser;
частный $_debugger;
}
?>
Начать писать конструктор>>>
public function Stupid() {
if(!is_dir(TPL_DIR) || !is_dir(TPL_C_DIR)) {
exit('Ошибка: правильно установите папку шаблона и папку компиляции');
}
}
В конструкторе мы определяем, правильно ли заданы путь к шаблону и путь компиляции.
Наш класс в основном имеет следующие методы:
Assign(), set_tpl_dir(), set_parsed_dir(), display(), debug().
метод назначить():
Целью функции Assign() является установка переменных шаблона. Код выглядит следующим образом: >>>
public function Assign($var, $value) {.
if(isset($var) && Trim($var) != '') {
$this->_tpl_vars[$var] = $value;
вернуть истину;
} еще {
exit('Ошибка: укажите имя переменной');
}
}
Сначала мы определяем, установил ли пользователь имя переменной, используйте isset($var) && Trim($var) != '', чтобы определить, Trim($var) != '' не позволяет пользователю устанавливать имя переменной с пробелами . Если установлено. Если переменная верна, мы сохраним ее в переменной-члене
метода display().
Метод display() — самый важный метод в классе Stupid. Он используется для отображения и определения того, был ли обновлен шаблон. Если он обновлен, он будет скомпилирован снова. Если он не обновлен, исходный скомпилированный файл. будет использоваться
следующий код >>>
public function display($tpl_file) {
.
$template_file = TPL_DIR.$tpl_file;
если(!file_exists($template_file)) {
exit('Ошибка: файл шаблона не существует');
}
$parsed_file = TPL_C_DIR.md5($tpl_file).'.php';
if(!file_exists($parsed_file) || filemtime($parsed_file) < filemtime($template_file)) {
require_once './stupid_parser.class.php';
$this->_parser = новый StupidParser();
$this->_parser->compile($tpl_file);
}
включить $parsed_file;
}
Этот метод основан на операторе !file_exists($parsed_file)||filemtime($parsed_file)< filemtime($template_file), чтобы определить, был ли он скомпилирован и обновлен ли файл шаблона, если он не был скомпилирован или нет. файл шаблона был обновлен, его необходимо перекомпилировать. Компилируем. Мы введем глупый_parser.class.php, создадим объект StupidParser и скомпилируем файл шаблона. это обычный
метод PHP-файла debug()
.
Метод Debugg() относительно прост и заключается в том, чтобы ввести файл глупый_debugger.class.php, создать объект StupidDebuger и вызвать метод запуска StupidDebuger для отладки.
Код выглядит следующим образом >>>
public function debug ($tpl_file). ) {
if (include_once("stupid_debugger.class.php")) {
$this->_debugger = новый StupidDebugger(TPL_DIR. $tpl_file);
$this->_debugger->start();
} еще {
exit('Ошибка: файл класса отладчика не существует');
}
}
На этом наш класс Stupid завершен! В следующий раз я расскажу о написании класса StupidParser. Пожалуйста, продолжайте поддерживать. Если у вас есть какие-либо комментарии или предложения, вы можете предложить
полную фазу шоу:
<?php.
define('TPL_DIR', './templates/');
define('TPL_C_DIR', './templates_c/');
класс Глупый {
частный $_tpl_vars;
частный $_tpl_file;
частный $_parser;
частная $_debug
общественная функция Stupid() {;
if(!is_dir(TPL_DIR) || !is_dir(TPL_C_DIR)) {
exit('Ошибка: правильно установите папку шаблона и папку компиляции');
}
}
Публичная функция Assign($var, $value) {
if(isset($var) && Trim($var) != '') {
$this->_tpl_vars[$var] = $value;
вернуть истину;
} еще {
exit('Ошибка: укажите имя переменной');
}
}
Отображение публичной функции ($tpl_file) {
$template_file = TPL_DIR.$tpl_file;
если(!file_exists($template_file)) {
exit('Ошибка: файл шаблона не существует');
}
$parsed_file = TPL_C_DIR.md5($tpl_file).'.php';
if(!file_exists($parsed_file) || filemtime($parsed_file) < filemtime($template_file)) {
require_once './stupid_parser.class.php';
$this->_parser = новый StupidParser();
$this->_parser->compile($tpl_file);
}
включить $parsed_file;
}
функция отладки ($ tpl_file) {
if (include_once("stupid_debugger.class.php")) {
$this->_debugger = новый StupidDebugger($this->_template_dir. $tpl_file);
$this->_debugger->start();
} еще {
exit('Ошибка: файл класса отладчика не существует');
}
}
}
?>