![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
CyClon |
|
||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: 3 Всего: 4 |
Я тебе выше описал простоту реализации этой идея, которая будет работать очень быстро (кэширование + псевдо-компиляция)
В данном случает от PHP, т.к. других интерпретируемых серверных языков не используется. Вставок у меня не будет типа foreach и т.д. Будет что-то типо {BLOCK_TEMPLATE:BEGIN} Тут идет код одного блока {BLOCK_TEMPLATE:END} То есть, все что заключено в теги будет циклично парситься пока не будут обработаны все блоки из базы данных. Извращения типа:
Я писать не собираюсь. ЗЫ: Не подумайте, что я смарти считаю извращениями. Свой шаблонизатор и смарти - разные вещи, в данном случае у меня все обработкой занимается CMS, смарти же расчитан вообще на все что только можно, в т.ч. наличие только HTML шаблона и все.
Компиляция блоков {BLOCK_TEMPLATE:BEGIN} и т.д. в нечто типа:
То есть я все конструкции первожу в PHP-код, так будет работать быстрее, так как не нужно запускать регулярки каждый раз.
Смотри выше, {BLOCK_TEMPLATE:BEGIN}-{BLOCK_TEMPLATE:END} будет обрабатываться циклом в PHP.
Я сражаюсь с отделением PHP кода от ядра системы, в блоках и модулях он будет допустим. В данном случае будет вставлен блок в нужное место. |
||||||||||||||
|
|||||||||||||||
WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: 6 Всего: 8 |
vasac, повторюсь, что есть такое слово, как абстракция. Не надо тут разводить демагогию, если-бы небыло от нее пользы - все-бы писали на ассемблере.
CyClon, жутко смахивает то, что в итоге должно получиться на xslt, мб использовать за основу именно его? или транслировать шаблоны в этот формат (надо проверить на скорость работы чистого пхп-кода и грамотного xslt-преобразователя) |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: 3 Всего: 4 |
Не знаком с x-технологиями, есть статьи для новичков?
![]() Кстати, вот статейку нашел о синтаксисах шаблонов: http://alexlebedev.com/blog/on-html-templates/ Мне по душе "Основанный на XML" пришелся, ну и "Специализированный синтаксис + HTML" конечно же. |
|||
|
||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
Каким образом такие термины как "абстракция" и "демагогия" коррелируют друг с другом, упоминанием ассемблера и тем, что я тут говорил? |
|||
|
||||
WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: 6 Всего: 8 |
CyClon, конечно - http://raleigh.ru/XML/XSLTutorial/
vasac, ок, обьясняю. Суть в том, что если-бы программисту не было удобно упрощение синтаксиса и более наглядные конструкции (в жертву скорости зачастую), коими {VAR}, в отличии от <?=$var;?> и являются (более сложные, особенно), то и не изобрели разного рода языки высокого уровня, тем более интерпретируемые. Опять-таки отделение php-кода от кода шаблонов - дизайнер по незнанию не сможет ничего напортачить и сделать трудно-уловимую ошибку. А демагогия заключается в том, что этот спор по большей части оффтопик, а аргументы заключается только в манипулировании словами, что "для меня так удобнее" и "я не понимаю". Никто ведь вас не заставляет писать свой шаблонизатор или использовать чей-то другой, если не нравится. Но преимущества шаблонизатора перед чистым php-кодом, я вроде обосновал. |
|||
|
||||
xolod |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 24.5.2005 Где: Когда: Что: Репутация: 4 Всего: 13 |
Не надо тыкать, вы уже не в школе, я не ваш старый приятель. Я ничего не думаю, я утверждаю что вы не сможете написать шаблонизатор лучше и быстрее, чем это делают 5 основных и куча побочных разработчиков Смарти на протяжении уже нескольких лет. Это не говорит вам о том, что вы плохой (начинающий, переходящий, не практикующий) разработчик. Честно говоря не знаю, к чему этот спор. Наверное все от моего паталогического непонимания тех, кто каждый день старается изобрести велосипед с квадратными, элиптическими или из сахарной ваты колесами, который изобретен уже давно. А ведь так много еще только ждет, что бы его изобрели. Это сообщение отредактировал(а) xolod - 16.5.2007, 17:09 |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: 3 Всего: 4 |
Я не говорил, что хочу сделать его быстрее того же смарти, я хочу его сделать примерно таким же, но намного проще и наиболее соответсвующим моим запросам. Смарти хоть и универсален, но эта универсальность избыточна, получается какой-то "интерпретатор на интерпретируемом языке". Еще раз повторяю, что мне это не нужно и у меня совсем другие запросы, мне всего лишь нужно подставлять значения перменных и вызывать функции вывода блоков. У кого еще какие мысли будут по этому поводу? WolfON, за ссылку спасибо, почитаю на досуге ![]() |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: 3 Всего: 4 |
Полистал по XSLT доки, в общем, там идет преобразование XML кода, это мне не подходит, ибо дизайнеры все верстают на HTML (или xHTML), вот его мне и нужно преобразовывать. Или может я не так понял суть шаблонизатора, основанного на XSLT? Объясните.
|
|||
|
||||
vasac |
|
||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
Я не манипулировал словами ни в одном месте данной темы. И демагогию разводить так же не намерен. Просто человек занят разработками в данной области и хотел, чтобы другие поделились с ним опытом. А опыт у меня какой-никакой имеется. И в моей деятельности был период "нужно делать вообще-вообще абстрактно и вообще-вообще универсально, только что такое абстрактно я понимаю слабо". Слава богу, отпустило. И не собираюсь навязывать своего мнения. Просто хочу, чтобы как автор темы, так и, возможно, те, кто будет читать, поняли, что есть взгляды, альтернативные "невероятно полному отделению всего от всего" и, возможно, более критично посмотрели на свою концепцию.
Избавьте меня от курса информатики за 7-й класс, тем более, что вывернули вы все наизнанку. Отнюдь, не синтаксисом уровни языков отличаются. А возможностью на качественно ином уровне решать проблему. "{", вместо "<?=" этого делать не позволяет.
А это уже, пардон, в каком-то подрастковом стиле. Я не спрашиваю вас, какой шаблонизатор мне писать или не писать вообще. Мы тут дискутируем на определенную тему и я выражаю свою точку зрения. Поймите, я не против шаблонизаторов, смарти, {TITLE} и т.п. Я против того, чтобы верстальщиков считали дебилами. Это сообщение отредактировал(а) vasac - 16.5.2007, 19:42 |
||||||
|
|||||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: 3 Всего: 4 |
Верстальщик не обязан знать PHP. Если он будет что-то на нем писать -> будут ошибки синтаксические. Вообще спор смысла не имеет никакого, некому ничего доказывать не собираюсь, я захотел шаблонизатор - значит я его сделаю. В этом топике хотел бы услышать советы по его реализации, а не мнения рода "долой шаблонизаторы". |
|||
|
||||
Хрипа |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 11.12.2006 Репутация: -6 Всего: нет |
Вообщем конечно много написали про шаблоны но лучше всего делать так:
при помоши preg_replace ereg_replace можно отслеживать и проверять контент очень удобно и гибко Далие файл шаблона содержит html который упровляется через функции draw_ в которые я скидую уже проверенные переменные из файла interpretator.php Лёгко можно менять бекраунд и картинку и прочие просто добавить переменную в функцию и дописать в html Это сообщение отредактировал(а) Хрипа - 17.5.2007, 00:28 --------------------
<Вырезана, как не соответствующая правилам форума > |
|||
|
||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
Я такого мнения не выражал. Шаблонизаторы это несомненно важнейшая вещь. Именно про вариант его реализации я и говорю. И это правильно! И не слушайте никого про "велосипеды с квадратными колесами". |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: 3 Всего: 4 |
<?=$var?> - ты называешь это шаблонизатором? Шаблоинизатор, по идее, это какой-то программный код, который переводит более простой язык самописный на PHP, в данном случае. |
|||
|
||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
Не, это транслятор ![]() А шаблонизатор это то, что позволяет внедрять шаблоны и разруливает взаимодействие м/у ними и всем остальным. |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: 3 Всего: 4 |
Вроде бы все обдумал, решил сделать шаблон в одном файле, но тут задумался о кэшировании, мне нужно будет в последствии кэшировать сайт поблочно, как это можно организовать для шаблона в одном файле? То есть мне нужно будет на шапку и низ поставить 2 часа, а для тела уже другие тайм-ауты.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |