Стоит ли создавать свой "Смарти" ?

Toxic_Cat

Новичок
Стоит ли создавать свой "Смарти" ?

Что я делаю: проект «для себя».
В чем вопрос: стоит ли создавать свою систему парсинга шаблонов (аля Smarty)?

В общем это интересны вопрос. Можно провести дискуссию на эту тему.

Пока моя CMS имеет следующую структуру:
1. получение данных ->
2. обработка и генерация шаблонов
3. вывод всего содержимого

Описание каждой структуры:
1. Получаем данные от юзверя GET, POST, SESSION, COOKIE и т.д.
2. – Подключаем ВСЕ библиотеки в папке include
– Проверяем данные на «допустимость» (SQL запросы)
– Подключаем ВСЕ блоки в папке block (они в свою очередь делают каждый по SQL запросу и проверяют, нужны ли они на данной странице)
– В зависимости от URL (например /news/) подключаем файл index.php в папке modules (modules/news/index.php)
– В каждом модуле заложена своя программа, свои переменные для парсинга ({TITILE, {NEWS}), заметьте, эти переменные не парсятся, а только инициализируются, как {ПЕРЕМЕННАЯ}=$значение;
3. В конце стоит функция echo $template и все содержимое сайта выводится в свет.

Почему так?
1. Так как ВЕСЬ вывод блока или модуля записывается в переменную, то я могу свободно кэшировать этот вывод.
2. Так как используются свои функции типа (sql_query(), sql_num_rows()) то можно спокойно перейти на новый тип БД + я могу сделать в sql_query функцию кэширования. Например sql_query(“SELECT * …..”, 900); Все ведь просто, делаем md5(запроса) и записываем его в БД указав второй параметр, как время кэширования в секундах (это только теория).

Это лишь часть функционала CMS, так как я не собираюсь писать «12 Томную Энциклопедию мыслей для своей CMS».

Вы наверное помните, что вопрос был именно в создании системы шаблонов? Так вот, пока я пользуюсь своими допотопными функциями, типо get_template(имя шаблона), и parce_template(содержимое, массив); Но недавно я «понял» что так дело не пойдет.

Во первых изначально я хотел для каждого «раздела» сайта сделать свой html файл шаблона. Где будет все, что необходимо. НО, мой метод не позволяет мне «выдрать» например новости – пропарсить их (ведь где-то должен быть цикл!!!) – и запихнуть их на старое место, где они и были…
Пока на месте новостей у меня есть надпись {NEWS} а для новости есть еще три(!!!) файла-шаблона: news_header.html (шапка новости), news_content.html (это я пускаю в цикл и парсю по 100 раз), news_footer.html (если зайдет Админ он будет видеть здесь дополнительный функционал). Но это же никуда не годится? К концу сайта у меня что будет по сотне файлов на каждый вид оформления сайта?

Что я видел у других: видел что у них возможно тэги if, while и др. Тоесть у них практически создается новый язык!!! Этот новый язык потом преобразуется в понятный PHP и выпоняется…

В общем я опять в замешательстве. Хочется для себя сделать удобный функционал системы, чтобы не пришлось лазить потом по PHP файлам и менять значания вида:
Echo: “<a href=\”$url\”>$url</a>”;
Кстати, мне приятнее смотреть именно на конструкцию внутри PHP кода ( :p )

Но вдруг мой друг «Вася пупкин» решит для будущего сайта нарисовать новый дизайн и даже сделает для него верстку в HTML!? Что я потом буду HTML код в PHP файлах искать и править? Так этож сколько работы на большой сайт? А если еще и информация в тегах <head> изменится ? «Метод нюка» сразу отпадает, так как у него на каждый файл есть один и тот-же header.php и footer.php

Может чего и подскажете…

Стоит ли писать свой Смарти ради этого? Ведь сайт это что? Первые пол года паришься, видоизменяешь его, а потом уже просто дополняешь его контентом. Но недавно я узнал новое слово SEO… Теперь оно не дает мне покоя, ради этого SEO я скорей всего и пишу CMS, чтобы в любой момент иметь возможность «круто» изменить структуру сайта…

В общем с таким подходом я никогда не сдвинусь с места… Вот скажите нафига мне писать функции sql_qeury, sql_num_rows, sql_error когда есть эквиваленты на mysql и я на 99% уверен что никогда не перейду на PostgreSQL? Но теперь когда я сажусь писать что-либо я постоянно подключаю свою библиотеку функций, которая инициализирует какая БД нужна и подключает необходимые функции…

Была даже мысль «стырить» чужую CMS и переделать в ней функции под свои, но к счастью я не нашел нужной мне CMS…

Пойду застрелюсь. ИМХО – бред… Лучше вообще не читать и не вникать в то, что я здесь понаписал… ;)
 

Нечто

Психолог РНРClub
Imho, компилирующий шаблонизатор один раз написать стоит (не значит использовать!), но только для того, чтобы понять, как он устроен, и впоследствии общаться на "ты" с Smarty. Ну и с другой стороны, опять же стоит для себя разобраться во флеймовой теме о том, на сколько имеет смысл псевдо язык в шаблонах.
А CMS нужно срочно писать заново, предварительно подумав пару месяцев :)

бред… Лучше вообще не читать и не вникать в то, что я здесь понаписал…
Вообще-то это надо было писать в начале поста ;)
 

Доктор

Новичок
>>опять же стоит для себя разобраться во флеймовой теме о том, на сколько имеет смысл псевдо язык в шаблонах.

И придти к единственно верному :) выводу, что смысла в нем нет.
 

Toxic_Cat

Новичок
Автор оригинала: Нечто
Imho, компилирующий шаблонизатор один раз написать стоит (не значит использовать!), но только для того, чтобы понять, как он устроен, и впоследствии общаться на "ты" с Smarty. Ну и с другой стороны, опять же стоит для себя разобраться во флеймовой теме о том, на сколько имеет смысл псевдо язык в шаблонах.
А CMS нужно срочно писать заново, предварительно подумав пару месяцев :)
Мне кажется смысла в нем минимум, разве что воможность хранить все в одном файле, чтобы потом можно было все быстро подкорректировать/изменить...

Вообще-то это надо было писать в начале поста ;)
Тогда бы никто это не прочитал ;)

Доктор
Возможно Вы и правы, есть много минусов в части использования смарти и шаблоноподобных систем...

Возможно стоит вернуться к старому варианту оформления. Банальный Инклуд и все... Сделать вместо левого меню Инклуд, сделать вместо новостей инклуд на скрипт с выводом и т.д. И не морочить себе голову дибильными тегами {head}, {title}, {content}...

Кстати по себе заметил что часто приходится все-равно лезть в php файлы, чтобы увидеть как эти самые теги генерируются...

В общем пошел сносить "шаблонизатор" и переписывать код.

Спасибо за Ваши ответы.
 

Нечто

Психолог РНРClub
Toxic_Cat
imho, рановато что-либо переписвать, т.к. были сделаны странные выводы.
Следует сначала разобраться, что такое pull и push шаблонизация, логика отображения и бизнес-логика.
 

Toxic_Cat

Новичок
Автор оригинала: Нечто
Toxic_Cat
imho, рановато что-либо переписвать, т.к. были сделаны странные выводы.
Следует сначала разобраться, что такое pull и push шаблонизация, логика отображения и бизнес-логика.
Раньше жил - бед не знал...
Чем больше поначитаюсь и понасмотрюсь - тем больше каши в голове...

Шаблонная структура мне подходила еще по одной причине, так как структура сайта была такова:
Главная директория:
index.php
/system/

В директории /system/ было все, и закрыта это директория .htaccess'om с помощью deny from all

Так что приходилось изощраться, ведь все запросы шли на главный файл index.php! Недавно я понял что не сделает это мою cms "безопаснее" и не облегчит мне работу, так как я интуитивно пишу функции проверки...

Короче в этом замешана еще одна "дурная" идея...

Перепишу по старому методу, только конечно учту правила SEO и пару других особенностей.

Всем спасибо, если есть что сказать - высказывайтесь, а я пошел с чистым сердцем кодить :)
 
Сверху