Клас PHP – простий шаблонізатор
Думаю кожен, хто починав програмувати рано чи пізно, приходив до висновку, що необхідно збирати готові скрипти для оптимізації своєї роботи.. Сьогодні я починаю новий розділ у якому хочу публікувати свої знахідки та напрацювання корисних 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.
Про те, що має бути в листі, можна почитати тут: Хочу навчитися робити сайти шукаю репетитора