Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: POPCORN TEMPLATE ENGINE

 PHP.SU

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


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

> Без описания
Awilum
Отправлено: 06 Мая, 2011 - 22:20:38
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Янв. 2011  
Откуда: Russian Federation


Помог: 0 раз(а)




Popcorn!

Решил для своей CMS-ки написать маленький и быстрый шаблонизатор Popcorn!
Собственно выкладываю в паблик. выслушаю критику, советы и предложения )


Встроенные шаблонные теги:
-------------------------------- -------------------------------- -
{echo $var} - Вывести значение переменной.
{var name $var2} - Создать локальную переменную. Видимость только в текущем в шаблоне. Если нужно передать во вложенный то заюзать {assign}
{const name $value} - Создать константу
{file 'filename'} - Загрузить файл
{run function()} - Запустить php функцию
{if expr} {else} {elseif expr} {/if} - Конструкция IF
{loop $mas as $item}{/loop} - Конструкция LOOP
{loop $mas as $key => $item}{/loop}
{codes} - Показать все зарегистрированные шаблонные теги/коды
{vars} - Показать все созданные шаблонные переменные
{dump $var} - Показать информацию о переменной
{assign var 'value'} or {assign var $value} - Создать глобальную переменную. Она будет видна в подключаемых шаблонах
{include 'template_name'} - Подключить шаблон


Примеры, документацию и последнюю версию можно посмотреть на офф. сайте:
http://popcorn[dot]template-cms[dot]org/

Так же Popcorn можно подключить к CodeIgniter: http://popcorn[dot]template-cms[dot]org/#3
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Мая, 2011 - 22:56:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Добавьте ф-цию (аля compressHTML), назовем её например "lyingHTML" (?) которая будет убирать повторяющиеся пробелы,
табуляцию и переводы строки, заменяя их на еденичные пробелы.
Как-никак - еще одна щепка (палкой не назвать конечно) в колеса кулхацкеров.
Но плеваться и рычать оные будут точно Закатив глазки
 
 Top
DeepVarvar Супермодератор
Отправлено: 07 Мая, 2011 - 10:49:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Кстати, да...
Вчера когда начал читать класс попкорна, почему-то подумал что в конце будет использован eval().
Однако..
Зачем делать лишние обращения к диску?
Думаю проще сделать eval() полученой конечной строки, без (как у вас) чтения, затем записи, затем снова чтения файла-шаблона и только потом его исполнения.
Сбросить можно на диск уже готовый статичный шаблон перехватив вывод через ob_get_contents(), как-никак - считай кеш.
И проверять его на устаревание например filemtime(time()-600) или иное время устанавливаемое как параметр при инициализации класса.
 
 Top
Awilum
Отправлено: 07 Мая, 2011 - 12:18:41
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Янв. 2011  
Откуда: Russian Federation


Помог: 0 раз(а)




Цитата:
Зачем делать лишние обращения к диску?
Думаю проще сделать eval() полученой конечной строки, без (как у вас) чтения, затем записи, затем снова чтения файла-шаблона и только потом его исполнения.
Сбросить можно на диск уже готовый статичный шаблон перехватив вывод через ob_get_contents(), как-никак - считай кеш.
И проверять его на устаревание например filemtime(time()-600) или иное время устанавливаемое как параметр при инициализации класса.

1) Проверяется существует ли скомпилированный шаблон или не устарел ли он.
2) Если устарел или его нет, то создается(компилируется) новый и подгружается иначе грузится скопированный.

Вот и все. Каждый раз ничего не парсится и не перекомпилируется.

Кеширования. да, его сейчас нету.
 
 Top
DeepVarvar Супермодератор
Отправлено: 07 Мая, 2011 - 12:50:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




DeepVarvar пишет:
чтения, затем записи, затем снова чтения файла-шаблона и только потом его исполнения

А по этому поводу?
 
 Top
Awilum
Отправлено: 07 Мая, 2011 - 12:52:20
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Янв. 2011  
Откуда: Russian Federation


Помог: 0 раз(а)




DeepVarvar
Я написал выше алгоритм по которому работает Popcorn

(Отредактировано автором: 07 Мая, 2011 - 12:52:40)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB