PHP Class — простой шаблонизатор
Думаю каждый кто начинал программировать рано или поздно приходил к выводу что необходимо собирать готовые скрипты для оптимизации своей работы. Сегодня я начинаю новый раздел в котором хочу публиковать свои находки и наработки полезных php классов и буду рад если вы, мои дорогие читатели, тоже будете помогать в подборе полезных классов.
Хочу чтобы сайт стал настольной книгой для тех, кто хочет не только разрабатывать сайты на системах управления, но и делать свои системы управления. Польза в создании своей системы будет огромной и чтобы доказать это приведу простой пример. Не так давно я столкнулся с тем что при работе с клиентами мне очень не хватает систематичности в решениях. Каждый шаг при работе с клиентами должен был записываться и так чтобы клиенту это было не в напряг, я же понимаю что им учить еще и мою программу нет смысла. Порыскав по интернету я нашол несколько хороших систему работы с клиентами CRM но ни одна не подходила под мои задачи. Настройка найденых систем была громоздкой , а работа просто превратилась бы в бюрократию. С другой стороны, имея набор полезных классов можно было бы без труда разработать систему управления под себя.
В связи с этим решил выложить первый простой класс шаблонизатора, который поможет начинающим разработчикам разобраться что собой представляют шаблонизаторы.
Код 1. Создаем файл для вызова класса index.php.
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php include 'classes/htmlGenerator.php'; $configs['site_name'] = 'Имя сайта'; $configs['charset'] = 'utf8'; $configs['content'] = 'Design Company'; $generator = new html_generator(); $generator->load_template('pages','main.html'); $generator->mount_vars($configs); echo $generator->buffer; ?> |
Код 2. Создадим папку classes рядом с index.php. В папке создайте файл htmlGenerator.php и вложите в него код.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php class html_generator{ public $manual_configs; public $template; public $buffer; function __construct() { } public function load_template($type, $name) { $this->buffer = file_get_contents('./templates/'.$type.'/'.$name); } public function mount_vars($arr) { foreach ($arr as $parameter=>$value) { $i++; $pos = strpos($this->buffer, '{'.$parameter.'}'); if($pos != false){ $this->buffer = str_replace('{'.$parameter.'}', $value, $this->buffer); $this->mount_vars($arr); }elseif($i>1000){ break; } } } } ?> |
Для начала создадим папки и файлы /templates/pages/main.html. Как видно из адреса папка templates должна быть в корне сайта, рядом с файлом index.php. В папке templates будет папка pages, которая определяет тип шаблона и наконец файл main.html это сам шаблон.
В файле main.html введите стандартную структуру html страницы со специальными метками. Метки должны соответствовать индексам массива из первого кода.
Пример кода шаблона:
1 2 3 4 5 6 7 8 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset={charset}"> <TITLE>{site_name}</TITLE> </HEAD> <BODY> {content} </BODY> </HTML> |
Хотелось бы от вас получить комментарии об использовании класса. Если у вас есть другие примеры классов буду рад посмотреть на них.
Удачи в разработке и пусть новый раздел «Готовые классы php» станет настольной книгой для нашего небольшого сообщества.
Раздел создан не для пошагового изучения, его и так полно в интернете. Новый раздел сайта создан для тех, кому нужны полезные примеры кода.
А если кто захочет научиться программировать, то я считаю что лучше обучаться с тренером. Результат всегда будет более эффективный и быстрый и зачастую обучение в группе лучше чем индивидуально, так как можно увидеть массу ошибок, которые делают ученики из группы.
Я хотел бы научиться программировать. Свяжитесь со мной)
Здравствуй я Максим. Администратор сайта wp-admin.com.ua. Я думаю, для индивидуального обучения будет лучше обсудить все голосом, а если после обсуждения будут вопросы, то можно писать их в комментариях, постараюсь на них ответить. Вопросы и ответы в комментариях будут полезны и для постоянных читателей блога.
Если все еще хочешь обучаться пришли мне письмо с твоими данными и пожеланиями на почту info@wp-admin.com.ua.
О том что должно быть в письме можно почитать тут: Хочу научиться делать сайты ищу репетитора