Вообще, главное достоинство шаблонизаторов в том, что они из коробки несколько полезных штук навязывают, к примеру тебе нужно заранее подготовить все данные что бы их передать в шаблон. Сами же шаблоны ты можешь как угодно дробить на части, либо наследовать расширяя / дополняя / заменяя отдельные блоки, плюс у многих по дефолту экранирование идет. Кэширование у любого нормального шаблонизатора из коробки: запустил - он скомпилился. Я уж молчу про несколько более удобный синтаксис и целый ряд различных хелперов. Добавлено спустя 1 минуту 23 секунды: Попробуй Laravel. Построена на тех же компонентах симфони, но гораздо дружелюбнее.
Неудобняк он добавляет. Я открыл и сразу же закрыл, потому что - это не подойдет вообще никак, я бы - это двиглом не назвал бы. Удобняк будет только тогда, когда будет " IDE " только web - структуры " PHP JS HTML CSS ", но!так, чтобы были связи, а не все подрят,- как сейчас в нынешних " IDE ", сильно пичкать незачем. Пока я могу назвать твой скрипт, как свалка. =) Ненужно было так мудрить с шаблонами и с интерфейсом самого движка - в нем почти ничего нет, даже той же шаблонной рекурсии и то не наблюдаю, подобие таких: Код (PHP): if(cache::is('value',60)) { for($i=0;$i<3;++$i) { $self->ifs('value',array( '{i}'=>$i ),true); } } else { $self->ifs('value',cache::get('value')); } А делать шаблоны подобие Smarty, Twig, бред.
нет. это для скриптов пхп. ну чуток еще для статики типа js и картинок. погоди, чувачек. А как же "конструктивная критика"? Чего? Почему? Что такое "шаблонная рекурсия"? О чем ты? У меня НЕТ интерфейса. Вместо шаблонов примитивные теги. Ты вообще потрогал, то, что критикуешь? Хотя бы в доку вчитался? Развей мысль, приведи аргументы. Я не понял ничего. Такое ощущение, как будто бы ты про какой-то другой продукт высказываешься.
Это когда у тебя шаблон самостоятельно генерируется, по указанному фрагменту блока и его состовляющих. Код (PHP): <?php if(cache::is('index',60)) { $self->file('index'); $self->tag('{tag}','TAG'); for($i=0;$i<3;++$i) { $self->ifs('value',array( '{i}'=>$i ),true); } $self->parse('index',true); } echo cache::get('index'); Код (PHP): {if value} <p> TITLE - VALUE {i} </p> {/value}
Доделаю покажу =)))) Там фишка вообще вся в том, что скрипт он просто дает возможность менять блоки, подобие " if, else ", только мы не пишем в шаблонах никакие if else и прочие какие - то там геморойные проверки, как в шаблонизаторах в сети типо Smarty, в html не должно быть этого гемора. У нас есть html и просто конструкции для указания. А вся модульность и реализация уже происходит от шаблона сайта, какой хотим мы его видеть и где, что будет стоять и как будет выглядеть. Сижу глобалю какой - то не вероятный процесс =))) Но пока все идет так - как планирую =)
Не для новичков, - это я понял. Но я думаю, тут ситуация должна быть иного характера, чтобы тот кто возьмет в управления, должен осознать, что он делает... Доработай динамику внедрения, тогда можно будет, о чем то уже говорить.
доки: основное ридми https://github.com/igordata/PinPIE по статик файлам. рекомендую заценить https://github.com/igordata/PinPIE/blob/master/docs/static.md по тагам https://github.com/igordata/PinPIE/blob/master/docs/tags.md по кешу https://github.com/igordata/PinPIE/blob/master/docs/cache.md по конфигу https://github.com/igordata/PinPIE/blob/master/docs/config.md и недоделанное, но покрывающее 80% случаев ридми по темплейтам https://github.com/igordata/PinPIE/blob/master/docs/template.md Добавлено спустя 21 секунду: что это значит?
По докам я пробежался уже. Могу сказать, только так: не в ручную. Иначе не знаю, как тебе объяснить, - это видеть скорей всего нужно.
просто я словосочетание "динамика внедрения" в жизни не встречал. Если ты про композер и тому подобное, то понял тебя, попробую.
у меня деревья компонентов на странице рекурсивно разворачиваются, это ок, в принципе. Главное нормально сделать. Ну..с поправкой, что у меня не юзаются твиги, смарти и хехарти. Компонент ищет дочерние компоненты, создает их, они выбрасывают свое UI, при создании этих компонентов стартует поиск дочерних компонентов...
рекурсивно подразумевает, что функция отрисовки у них тоже может быть общая. По сути я бы хотел, чтобы кто-то покритиковал или попробовал. Пока же мне только принципиальные вещи высказаны.
Ну, у меня это просто обеспечивает надстройка, а не сама система, функции отрисовки у всех компонентов, в идеале, унаследованы от общего класса, но, по факту, никто не мешает юзать что-то свое. В общем, все хитро, но не суть. На выходных могу поглядеть, если будет время, опять же. Не ранее, увы( Скоро премьера, времени катастрофически не хватает.
Верно, мы можем обрисовывать по разному одно и тоже или сразу несколько. Менять содержимое и добавлять новое, а также разворачивать опять же меняя один и тот же блок. Очень много работы. Но затраты на выполнения становятся незаметными =)))
1) Тупой Routing из url на файловую систему, я бы не стал это использовать нигде. Заказчики чаще всего хотят ЧПУ (/contact вместо /page?id=4, /catalog/for-women/underwearth вместо catalog.php?category_id=42). Стоило посмотреть на то, что делают другие (на slim, silex) и каким должен быть роутинг. 2) Зря игнорируешь psr (в частности psr-0(4)), composer. 3) Как уже сказали, хочешь показать что-то другим (заставить использовать) - смотри, что делают и используют другие. Никто не захочет брать твой "двигл" ради подобия шаблонизатора, многопоточной загрузки статики (вещь по сути примитивная) и gzip сжатия. Вся проблема в подходе писать свой велосипед ради трех фич (по сути простых, зачем ради этого писать остальное самому?). Это ведь как раз то, чего все стараются сейчас НЕ делать. Все используют готовые компоненты, где возможно и пишут только то, что важно именно в их решении, никто не старается написать всё самостоятельно без особой необходимости. Я могу использовать Stash/Zend_Cache для кэша, slim для роутинга, assetic для статики (другие компоненты, если они мне нужны, например httpkernel) и вставить туда только нужные мне фичи (и мне не нужно будет следить за загрузкой кучи библиотек и их зависимостей, см. psr-4, composer). Преимуществ такого подхода в сравнении с "двиглом" бесконечное количество.