php_templates в виде класса

Profic

just Profic (PHP5 BetaTeam)
Тони, в общем, как народ скажет, так и сделаем :)

для интересующихся класс ловить здесь
 

su1d

Старожил PHPClubа
да чё со мной связываться.. здесь я =)
функциональность движка все знают, делайте класс.
если он потом мне понравится -- включу в дистрибутив, если нет -- включу, но только до тех пор, пока не сделаю свою версию.
 

Profic

just Profic (PHP5 BetaTeam)
su1d, у меня была идея написать вообще клон один-в-один, но потом понадобилось то, это и т.д. и класс ушел немного в сторону :)

Один товарищь хотящий :) копию один-в-один уже есть. Еще хотящие есть? Если есть, то будет вам php_templates в виде класса, если нет, то и париться не буду...
 

su1d

Старожил PHPClubа
но потом понадобилось то, это и т.д. и класс ушел немного в сторону
ты будешь смеяться, но у меня сейчас где-то такая же ситуация вообще с движком. нужно срочняком сделать новую версию, но у меня в данный момент просто нет времени на это. отсутствие должной самоорганизации тоже входит в число причин, но лишь постольку поскольку. главной проблемой всё равно пока является чересчур большое количество проектов, которые я как-то не подумав взвалил на себя в последнее время.

в довершение всего три дня назад окончательно сдох комп дома, и теперь надо ждать две недели (уже полторы), пока привезут новый. =/

хотящих класс -- много. наверное большая часть всех, кто юзает движок, будут рады получить класс (хотя, честно говоря, мне лично он не так уж и нужен). рано или поздно я тоже им займусь, если к тому времени не появится хорошей альтернативы. "хорошей" в данном случае означает полное клонирование функциональности движка (скоростью в РНР-классе, думаю, можно пренебречь) и более менее хороший РНР-код. хороший код - понятие в принципе субъективное, и каждый понимает его по-своему, но тут уж ничего не поделаешь. код должен будет нравиться мне. =)

если кто-то сделает класс, я, как уже говорил, включу его в проект (на страницу Downloads на Sourceforge'e) до тех пор пока не появится лучшая альтернатива.
разумеется, все credits'ы будут учтены и т.п.
 

Profic

just Profic (PHP5 BetaTeam)
хотящих класс -- много. наверное большая часть всех, кто юзает движок
Ага а сколько тех, кто пользуется? :)

полное клонирование функциональности движка
с той основой, чо уже есть, сделать это будет легко

код должен будет нравиться мне
А не мог бы ты взглянуть на мой код. Понравиться или нет? :)Это мой стиль и писать по другому врядли получится...

итого: я видимо все-же возмусь за написание клона. Есть одна закавыка - метод класса не может называться unset. Ну я его в del переименовал...
 

tony2001

TeaM PHPClub
народ, может быть я не в тему, но каким образом вы собираетесь добиться совместимости между классом и экстеншеном?
цель какая?
я неправильно понимаю, что один и тот же код должен работать как с "заменителем", так и с оригиналом экстеншена?
 

su1d

Старожил PHPClubа
Ага а сколько тех, кто пользуется?
а чёрт его знает. 1152 скачивания на текущий момент с sourceforge.net

один и тот же код должен работать как с "заменителем", так и с оригиналом экстеншена
подразумевается, что экстеншн скоро будет определять класс автоматически.
а вообще -- да, цель именно в том, чтобы один и тот же код без изменений работал как с модулем, так и с РНР-клоном.
так что РНР-клон тоже должен поддерживать обычные ф-ции движка.
 

tony2001

TeaM PHPClub
>подразумевается, что экстеншн скоро будет определять класс автоматически.
ээээ..
так это не совсем то.
есть "замена экстеншену", а есть "дополнительная фича экстеншена".
класс тогда - это доп. фича, но никак не замена.
 

su1d

Старожил PHPClubа
по-моему, класс должен быть именно заменой экстеншна
 

tony2001

TeaM PHPClub
гм.
но каким образом он будет заменой, если синтаксис вызовов класса будет явно отличаться от синтаксиса вызовов функций экстеншена?
или планируется сменить синтаксис экстеншена?
 

su1d

Старожил PHPClubа
планируется добавить в экстеншн вшитый внутрь класс, не теряя при этом уже существующих функций.
по идее, то же самое должен делать и РНР-клон.
 

rudik

Developer
Я предполагаю, это должно быть вроде:

if (extension_loaded('php_templates')) {
$php_template = extension_init
} else {
require_once('php_templates.class.php');
$php_templates = new PhpTemplates();
}

И применяться на серваках где не стоит этот extension
 

su1d

Старожил PHPClubа
PHP:
if(!extension_loaded('templates')) { include_once('php_templates.php'); }
всё! дальше уже пользоваться ф-циями tmpl_open(), tmpl_set(), tmpl_parse(), etc.
когда в экстеншне будет вшит класс, можно будет делать так:
PHP:
if(!extension_loaded('templates')) { include_once('php_templates.php'); }
$tmpl =& new php_templates();
 

Profic

just Profic (PHP5 BetaTeam)
спасибо за дискусию :)
я понял чего именно нужно делать :)
 

Profic

just Profic (PHP5 BetaTeam)
Хех, почти, все сделал...
1) Для теста нужно несколько файликов с дримваверскими шаблонами (необязательно, но желательно) и код для работы с ними (если это возможно)
2) Не реализованным пока остался tmpl_set_global. Он не реализован был в моем классе.
3) В доке tmpl_unset написано "Deletes the value assigned to the tag pointed by path in the current iteration or deletes iterations of a context." Так вот, выделенный кусок означает удаление вообще всех итераций или последней. По тесту выходит, что всех, но я понял, что последней...

[остальные вопросы решил посмотреть в начале в исходнике, а потом уже спрашивать :)]

ЗЫ. Шаблоны и скрипты слать на мой_ник_маленькими_буквами@lrn.ru
 

Profic

just Profic (PHP5 BetaTeam)
Я конечно понимаю, что все заняты футболками :)

Вот тут лежит бета версия. Там же тесты из исходников экстеншена. Работают...

Несколько комментариев:
1) Без наличия реальных Дримваверских шаблонов сделать их поддержку проблематично. Можно тупо, без тестирования, но по мне это не есть правильно...
2) tmpl_set_global не реализована (в общем мелочи)
3) Ошибки отличаются от тех, которые в экстеншине и их больше :)
4) Это бета. Комментарии приветствуются :)
5) Скорость, естественно, упала, но сравнима с другими движками на PHP.

Куда слать шаблоны написано в предыдущем посте...
 

[DAN]

Старожил PHPClub
Profic, дай пожалуйста реальную ссылку на класс :)
 

Profic

just Profic (PHP5 BetaTeam)
Блин, у меня после первого раза форум сообщение не принял а второй раз путь прописать забыл :)
А ссылка есть в самом верху этой страницы :)
или вот эта: http://mi.kursknet.ru/profTemplate2.zip

С дримваверскими шаблонами уже в принципе разобрался
вот домучал tmpl_unset.
Дык после оптимизации по скорости (~30% выиграл) какой-то гад убивает все последние итерации.. а какой понять не могу :( Бли-и-ин, хачу нормальный отладчик под винду...
 
Сверху