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 кода (
)
Но вдруг мой друг «Вася пупкин» решит для будущего сайта нарисовать новый дизайн и даже сделает для него верстку в HTML!? Что я потом буду HTML код в PHP файлах искать и править? Так этож сколько работы на большой сайт? А если еще и информация в тегах <head> изменится ? «Метод нюка» сразу отпадает, так как у него на каждый файл есть один и тот-же header.php и footer.php
Может чего и подскажете…
Стоит ли писать свой Смарти ради этого? Ведь сайт это что? Первые пол года паришься, видоизменяешь его, а потом уже просто дополняешь его контентом. Но недавно я узнал новое слово SEO… Теперь оно не дает мне покоя, ради этого SEO я скорей всего и пишу CMS, чтобы в любой момент иметь возможность «круто» изменить структуру сайта…
В общем с таким подходом я никогда не сдвинусь с места… Вот скажите нафига мне писать функции sql_qeury, sql_num_rows, sql_error когда есть эквиваленты на mysql и я на 99% уверен что никогда не перейду на PostgreSQL? Но теперь когда я сажусь писать что-либо я постоянно подключаю свою библиотеку функций, которая инициализирует какая БД нужна и подключает необходимые функции…
Была даже мысль «стырить» чужую CMS и переделать в ней функции под свои, но к счастью я не нашел нужной мне CMS…
Пойду застрелюсь. ИМХО – бред… Лучше вообще не читать и не вникать в то, что я здесь понаписал…
Что я делаю: проект «для себя».
В чем вопрос: стоит ли создавать свою систему парсинга шаблонов (аля 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 кода (

Но вдруг мой друг «Вася пупкин» решит для будущего сайта нарисовать новый дизайн и даже сделает для него верстку в HTML!? Что я потом буду HTML код в PHP файлах искать и править? Так этож сколько работы на большой сайт? А если еще и информация в тегах <head> изменится ? «Метод нюка» сразу отпадает, так как у него на каждый файл есть один и тот-же header.php и footer.php
Может чего и подскажете…
Стоит ли писать свой Смарти ради этого? Ведь сайт это что? Первые пол года паришься, видоизменяешь его, а потом уже просто дополняешь его контентом. Но недавно я узнал новое слово SEO… Теперь оно не дает мне покоя, ради этого SEO я скорей всего и пишу CMS, чтобы в любой момент иметь возможность «круто» изменить структуру сайта…
В общем с таким подходом я никогда не сдвинусь с места… Вот скажите нафига мне писать функции sql_qeury, sql_num_rows, sql_error когда есть эквиваленты на mysql и я на 99% уверен что никогда не перейду на PostgreSQL? Но теперь когда я сажусь писать что-либо я постоянно подключаю свою библиотеку функций, которая инициализирует какая БД нужна и подключает необходимые функции…
Была даже мысль «стырить» чужую CMS и переделать в ней функции под свои, но к счастью я не нашел нужной мне CMS…
Пойду застрелюсь. ИМХО – бред… Лучше вообще не читать и не вникать в то, что я здесь понаписал…
