| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Libraries > Шаблонизатор - Попкорн! |
| Автор: awilum 7.5.2011, 13:02 |
![]() Решил для своей 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.template-cms.org/ Так же Popcorn можно подключить к CodeIgniter: http://popcorn.template-cms.org/#3 |
| Автор: cutwater 7.5.2011, 15:16 | ||||||
| Велосипед на велосипеде и велосипедом погоняет. 1. Зачем? 2. Что бросается сразу в глаза: отсутствие хоть какой-нибудь концепции layout, наследования шаблонов, что-либо еще. или предлагаете все писать корявой логикой на инклюдах? А какие шаблонизаторы рассматривали прежде чем приступить к написанию своего? 3.
Бизнес-логика в шаблонах? 4. Если убрать все рюшки аля dump, vars, codes в сухом остатке останется: assign, if, loop, include Действительно простой шаблонизатор 5. Различать константы / переменные, а нужно ли? 6. Документация откровенно паршива.
Хм... вот любопытно что же автор имел ввиду и какие принципиальные отличия от include? 7. Пример с variable assigment слегка странен А должно ли попадать в Result?
8. Лицензия: GNU GPL 3 License Поправьте если ошибаюсь в деталях, но с такой лицензией Ваш шаблонизатор в принципе не применим кроме как к продуктам для внутреннего использования и продуктов под GPL лицензией. P.S. Исходники не смотрел. Посмотрел: настройте IDE, у Вас каша с отступами табы и пробелы одновременно. (заметно при tab=8) Вердикт: поделка, не нужно! |
| Автор: awilum 7.5.2011, 19:11 |
| >1. Зачем? 1) Мне не нужен в моей cms Smarty(хоть и делал несколько проектов с ним) из за его прожорливости 2) Не использовать в своей CMS чужую либу, когда могу написать свою и по проще. Есть все что надо, хоть и это assign, if, loop, include хм а что еще ? все это же юзаю и в смарти. >А какие шаблонизаторы рассматривали прежде чем приступить к написанию своего? Я имею опыт работы с Smarty и XTemplate. Но написал этот. смотреть пункт 1) и 2) >Бизнес-логика в шаблонах? да знаю. чувак ныл мол а как же ему запустить функцию.. убрать не проблема эту рюшку. спасибо. >Различать константы / переменные, а нужно ли? {var name $var2} - Assign local template variable {const name $value} - Assign constant {assign var 'value'} or {assign var $value} - Assign global variable да иногда надо временные переменные а если надо передать в дочерний шаблон {assign} но не часто такое... >Хм... вот любопытно что же автор имел ввиду и какие принципиальные отличия от include? {file} - загружает просто html файл не парсит и не компилирует. {include} - выполняет draw() и если временные {var} {const} в шаблоне были {assign} то они попадут в этот дочерний. Ив подключенный шаблон попадут те переменные что были зарегистрированы в контроллере(приложении). Посмотрите пример в архиве. >GNU GPL 3 License да GNU GPL 3 License как и https://bitbucket.org/Awilum/template-cms |
| Автор: awilum 7.5.2011, 19:32 | ||
Открываю в Sublime text и Notepad++ все нормально. |
| Автор: cutwater 7.5.2011, 21:06 |
А Вы таки поставьте размер табуляции != 4. Ну и кому нужна Ваша CMS и шаблонизатор под такой лицензией? А если для себя, так зачем пиариться? UPD: Даже если для CMS допустимо распространение под GPL (о чем надо бы завести отдельный разговор) То для шаблонизатора все же такая лицензия является весьма неудобной. Поведение описано в документации недостаточно полно. Субъективное мнение: операция сама по себе равнозначная и по сути пользователя не должно волновать что там: шаблон или просто файл. Речь как раз о том что шаблонизаторов великое множество и Smarty c концептуальной точки зрения далеко не лучший его представитель. Можете найти тему посвященную проектированию шаблонов. Прочие рекомендации: Сменить лицензию, сменить sourceforge на github вместе с системой контроля версий, привести таки код к единому виду (либо Tabs либо Spaces) смешивать не хорошо. |
| Автор: Muerto 7.5.2011, 21:07 |
| Автору конечно респект и молодец... Любопытно было бы провести тесты на скорость ... Я к примеру люблю Haanga, имхо лучшее на сей день что можно получить по функционалу и прожорливости к памяти(он оч быстрый и легкий, но есь даже наследие) |
| Автор: awilum 7.5.2011, 21:17 | ||||||||||
хм. на работе проект типа "соц сети". Юзается Smarty. И в шаблонах if, foreach, include ну и еще date_format иногда встречается вот и все. "Действительно простой шаблонизатор" и что ?
представьте себе такого рода CMS специально для сайтов визиток, сателлитов, домашних страничек пользуются спросом: http://www.cmsbezmysql.ru/category/vizitki
да, наверное надо было за денежку отдавать как другие ? http://forum.searchengines.ru/showthread.php?t=250959
меня устраивает меркуриал и битбакет: https://bitbucket.org/Awilum/popcorn
Тема создана для фидбека: критика, советы, предложения. |
| Автор: awilum 7.5.2011, 21:24 |
| haanga по синтаксису мне напоминает Twig |
| Автор: cutwater 7.5.2011, 21:27 |
Который по синтаксису напоминает Jinja (автор один), который по синтаксису напоминает Django... ну и так далее. Можно конечно еще заняться вопросом что появилось раньше, однако по дизайну все эти шаблонизаторы примерно похожи концептуально и синтаксически. |
| Автор: Muerto 7.5.2011, 21:43 |
| А Haanga напоминает таки Twig или Django Ток по сравнением с Twig работает в десятки раз быстрей и памяти жрет в десяток раз меньше, а функционал почти такой же |
| Автор: awilum 8.5.2011, 00:35 |
| Сделал снипеты для http://www.sublimetext.com/ @@ - {@ $var} @echo - {echo $var} @if - {if $var} {/if} @ifelse - {if $var} {else} {/if} @ifelseif - {if $var} {elseif $var} {/if} @loop - {loop $key as $item} {/loop} @var - {var name $var2} @const - {const name $value} @assign - {assign var $value} @include - {include 'template_name'} @file - {file 'filename'} @run - {run function()} @vars - {vars} @codes - {codes} @dump - {dump $var} Скачать: http://popcorn.template-cms.org/files/st_snippets/popcorn.zip Установка: Распаковать в папку Sublime Text\Packages\User |
| Автор: gcc 8.5.2011, 00:51 |
| awilum, на perl есть очень мощный шаблонизатор, там вообще как другой язык http://ru.wikipedia.org/wiki/Template_Toolkit http://template-toolkit.org/ http://www.template-toolkit.ru/ |