PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 1
Volloff Отправлено: 20 Октября, 2021 - 13:50:25 • Тема: Пишу свой шаблонизатор - хочу посоветоваться • Форум: Объектно-ориентированное программирование

Ответов: 2
Просмотров: 1492
Всем привет! Для своего проекта решил написать простенький шаблонизатор, но есть некоторые опасения насчет производительности. Проект пишу по принципам MVC и ООП, но здесь для простоты код привожу в процедурном стиле, так как меня интересует только вопрос производительности, если эта идея будет оправдана то перепишу на классах.
Суть вопроса
Я хочу не использовать вообще PHP код в шаблонах, все файлы шаблонов будут с расширением .html (сначала хотел юзать .tpl но потом понял смысла особого нет)

Сам обработчик выгладит так:
PHP:
скопировать код в буфер обмена
  1.  
  2. // получаем шаблон
  3. $template = 'assets/tmpl/template.html';
  4. $content=file_get_contents($template,true);
  5.  
  6.  
  7. // Парсим плейсхолдеры в шаблоне, и заменяем их подготовленными данными из модели
  8. $content=str_replace('[menu]',$menu,$content);
  9. $content=str_replace('[text]',$text,$content);
  10.  
  11. // далее функция вывода подготовленного шаблона
  12. if ($content) {
  13.    ob_start();
  14.                  return $content;
  15.    ob_get_flush();
  16. }
  17.  


и код шаблона
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div class="menu">[menu]</div>
  3. <div class="text">[text]</div>
  4.  


собственно вопрос как уже и говорил в производительности, если будет сто str_replace может ли это как то сказаться на скорости? Если еще и данных дофига будет в заменах?
Знаю конечно про готовые шаблонизаторы, Twig там и все такое, но пока идея сделать по своему. Или ну его нафик, что посоветуете?
Заранее спасибо, если посоветуете как что-то улучшить, то вообще буду очень благодарен)

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB