после долгих, нудных переписываний кода, пришел к окончательной форме и структуре
Работа mysql:
1. Сохраняет несколько подключений
2. Возможность переключений подключений во время выполнения
3. Смена базы подключения
4. Смена кодировки подключения
5. Хранение запросов в отдельных файлах
6. Обработка запросов
7. Автоматическая выдача результата в нужном формате(возможность изменения)
8. Обработка ошибок
Вес класса 3 килобайта
Работа шаблонизатора:
1. Внутренний синтаксис работы шаблонов для дизайнеров
Шаблон
Демку давай!!!11
You can't feeling! No you can't feeling! And you can't feeling!
— People = Shit
написана с нуля или за основу быва взята какая то cms ?
все писалось с нуля =) своими силами и знаниями =)
Демка, в нете, будет позднее, вместе с бесплатной версией =)
В бесплатной будет
1. Авторизация
2. Система новостей
3. Топы
возможно потом и подключу систему платежей
шаблонизатор работает теперь с
Локальными переменными и глобальными
Рабочие структуры
if/elseif/else/while/foreach/for/switch
Встроенные функции
А чем не нравится XSLT в качестве шаблонизатора (он вроде как для этого в стандарты W3C и внесен)? Зачем опять изобретать велосипед ввиде нового языка шаблонов? И чем не устраивают другие шаблонизаторы (благо их за последние лет 8 напахали достаточно)?
Чтобы CMS хорошо использовалась в первую очередь (ну очевидные вещи, как безглючность, адекватная админка и функционал) с ней должно быть просто работать дизайнеру/верстальщику и разработчику. С этой точки зрения язык шаблонов нужен либо стандартизированный (XSL) либо популярный (FastTemplate тот же), а сама CMS должна быть модульной (для дописывания компонент разработчиками) и "прозрачной" с точки зрения архитектуры (т.е. должно быть интуитивно понятно, как из своего модуля получить доступ к той или иной компоненте системы без граблей в 3 ряда, т.е. описано и реализовано адекватное API).
Без этого всего CMS будет на уровне поделок начала 2000-х годов, т.е. отставать от рынка на 9-10 лет. (ну AJAX - это, конечно, хорошо, но он "интересности" данной CMS не добавит).
ЗЫ: для экспериментов и раздумий, если, конечно, планы на CMS больше, чем сделать игрушку под сервера линейки, а что-то серьездное):
- а как обстоят дела с выводом, скажем, таблицы в 10.000 записей через шаблонизатор? (просто известный прикол того же FastTemplate, который на этом захлебывается и не укладывается в 30 сек).
- как обстоят дела с "безопасностью" шаблонов (например, как она к такому вот шаблону отнесется: {exec('rm -rf .');} или {exit();})?
- как обстоят дела с потреблением памяти и процессора? Делались ли замеры? Впишется ли она, скажем, в ресурсы на минимальном тарифе за 3 у.е. у какого-нить совсем тухлого хостера (т.е. 0.1% времени от C2D и 16Мб памяти под на процесс PHP) и если нет, то какие требования? (сюда же - оптимизация кода).
- помимо POST- и GET-запросов есть еще COOKIE, про них помним? (о безопасности)
- как со стрессоустоячивостью обстоят дела (т.е. планируется ли модуль отражения микро-DDoS-ов?
- планируется ли поддержка ЧПУ (обработка ссылок вида /articles/statya-ob-lineyke.html как get-запрос)?
А вообще - начинание очень хорошее, в первую очередь для самого автора. Личный опыт - бесценен.
- У тебя есть сердце?
- Сердце?... Нет, но у меня есть винтовка, а сердце... сердце - слишком хорошая мишень, чтобы носить его при себе...
Завтра сделаю краш тест и отвечу на ваши вопрос, думаю интересно всем.
Шаблонизатор устроен так обрабатывает слова сначала, и блоки, потом обрабатывает для кеша, а из кеша делается постоянный вызов
И не делает лишних тело движений. Код в 55 строк вес файла меньше двух кило байт максимум будет 80-150 строк
Doomer, не подумай, я не в коем случае не докапываюсь и не придираюсь. Просто это грабли, на которые уже тысячи людей наступали.
По поводу шаблонизатора: идею понял, теперь вопрос, как с правами на запись в cache-директорию, не смущают? Иногда это бывает опасно, например, если в коде окажется возможность remote include-а, то есть, куда записать шел-код и это место доступно извне.
По поводу тестов на производительность, это думаю будет полезно:
- У тебя есть сердце?
- Сердце?... Нет, но у меня есть винтовка, а сердце... сердце - слишком хорошая мишень, чтобы носить его при себе...
Усовершенствовал шаблонизатор, теперь работает и со статическими страницами, то-есть, если страница не часто обновляется есть возможность сохранить её в кэш и от туда она будет грузится(учитывается обновление), это уменьшает нагрузку на сервер и бд,
Дальше будет сделан универсальный класс который будет работать с хранением данных(один интерфейс). Возможны варианты: Mysql,postSql,файловая система и т.п. Собственный тип запросов.
если есть желающие могу шаблонизатор выложить