ГоловнаКаталогБлогРейтингЕ-Пошта 
 
 
Зробити домашньою у вибране  

  Передмова  
Поза сумнівом, одне з питань, що найчастіше ставляться, в списках розсилки PHP - "Як мені зробити свої PHP-скрипти незалежними від дизайну?". Хоча PHP називають "скриптовою мовою, що вбудовується в HTML", після написання декількох проектів, в яких PHP і HTML вільно перемішуються, багато хто розуміє, що відділення форми від змісту - це Хороша Річ [ТМ]. Крім того, в багатьох компаніях посади дизайнера і програміста розділені між собою. Так починається пошук обробника шаблонів...

Наприклад, в наший компанії розробка додатку йде таким чином: після того, як готова вся проектна документація, дизайнер інтерфейсу створює макети і передає їх програмістові. Програміст реалізовує логіку додатку на PHP і використовує макети інтерфейсу для створення базових шаблонів. Потім проект передається HTML-дизайнерові/верстальникові, який доводить шаблони до досконалості. Проект може кілька разів переходити з етапу HTML-верстки до етапу програмування і назад. Таким чином, важливо мати хорошу підтримку шаблонів, тому що програмісти не хочуть мати справи з HTML і не хочуть, щоб HTML-дизайнери копалися в PHP-коді. Дизайнерам потрібна підтримка конфігураційних файлів, динамічних блоків і інших інтерфейсних нюансів, але вони не хочуть мати справи з складностями мови програмування PHP.

Дивлячись на безліч обробників шаблонів, доступних сьогодні для PHP, більшість з них надає базові можливості підстановки змінних в шаблони і має обмежену підтримку динамічних блоків. Але нам було потрібне щось більше. Ми хотіли, щоб програмісти взагалі не мали справи з HTML, але це було практично неминуче. Наприклад, якщо дизайнер хотів, щоб два фонові кольори чергувалися при відображенні динамічних блоків, цю задачу необхідно було вирішувати разом з програмістом. Нам також було потрібно, щоб дизайнери могли використовувати власні конфігураційні файли і вставляти змінні з цих файлів в шаблони. І так далі...

Ми почали написання специфікації для обробника шаблонів ще в 1999 році. Коли ми закінчили специфікацію, ми почали працювати над обробником шаблонів, написаним на Сі, якому, як ми сподівалися, дозволять стати частиною PHP. Ми не тільки наткнулися на безліч технічних бар'єрів, але була і велика кількість суперечок щодо того, що повинен і не повинен робити обробник шаблонів. Внаслідок цього ми вирішили, що обробник шаблонів повинен бути написаний на PHP у вигляді класу, щоб кожен міг використовувати його так, як хоче. Потім ми написали механізм, який відповідав цим вимогам і SmartTemplate з'явився на світ (зауваження: цей клас ніколи не був опублікований). Це був клас, який робив практично все, що нам було потрібно: звичайна підстановка змінних, підтримка підключення інших шаблонів, інтеграція з конфігураційними файлами, вбудовування PHP-коду, обмежена підтримка умов 'if' і покращувана підтримка вкладених динамічних блоків. Все це досягалося використанням регулярних виразів і у результаті у нас вийшов код, який, скажімо так, не дозволяв вносити до себе які-небудь зміни. Крім того, він пристойно гальмував в крупних додатках через велику кількість парсинга і регулярних виразів, які оброблялися при кожному запиті. Найбільшою проблемою з точки програміста зору була та робота, яку потрібно було провести над PHP-скриптом для настройки і обробки шаблонів і динамічних блоків. Як же ми можемо спростити це?

Потім прийшло бачення того, що надалі переросло в Smarty. Ми знали, як швидкий PHP-код, якщо його не перенавантажувати обробкою шаблонів. Ми також знали, як всеосяжно і незрозуміло може виглядати мова PHP для середньостатистичного дизайнера, і що це можна замаскувати за допомогою простішого синтаксису шаблонів. А чом би нам не об'єднати дві ці сили? Так і народився Smarty... :-)




  Ім'я:
  Пароль:
Чарівний світ Photoshop
Чарівний світ Photoshop
Быстрая перевозка оборудования автомобильным транспортом в Новосибирск.
APServer | SiMan CMS | Лічильник відвідувань | Тека сайтів | Рейтинг | Форум | Лінійки малюкам | PHP Builder | Download | Шаблони сторінок | Посібник Smarty | Підручник PHP | Статті/Огляди | Розробка сайтів | Банерна мережа