awilum: Код на равне с WP и Drupal по чистоте/грамотности написания.
Не живите иллюзиями и слушайте что вам говорят. Хотя бы иногда.
awilum: Покажете мне другую CMS из этой категории в которой Template CMS у которой код чище ?
Легко. Из того небольшого списка, что я посмотрел, мне наибольше Stacey понравилась. Чистый ООП код. Даже обработкой исключений разработчики не побрезговали. Молодцы. Не помешало бы ввести полноценную автозагрузку классов, но с учетом количества классов и так нормально.
Есть, конечно, пару замечаний, но в целом хорошо. Можете в код глянуть, там есть чему поучиться.
awilum: Единственный конкурент Template CMS в своей категории - Get Simple
Кстати, ваша CMS в некоторых местах с Get Simple поразительно похожа ;)
awilum: Почитав, ваш пост, я даже не буду выбирать цитаты из него и тратить время на объяснения и ответы.
А и вправду? Зачем?
Хотя если честно, то я не жалею, что потратил два-три часика на копание в вашей, так сказать, CMS. Реализация чего-то издалека похожего на базу данных на XML - это мощно :)
awilum: Архитектура и продуманность в разу лучше Кандидат CMS, GetSimple...
Взгляните на ту же Stacey или Блоголет. Они получше вашей будут в плане архитектуры и чистоты кода.
Что вы так за Кандидат CMS вцепились? Она в разы проще и быстрее вашей. Для сателлитов и простеньких сайтов самое оно.
В Кандидате все предельно просто работает. Пришел запрос, отфильтровались 3 переменные пути, а также массивы $_POST и $_GET. Дальше сразу происходит подгрузка страницы, разбивка на блоки, формирование меню, подгрузка шаблона с PHP вставками и вывод страницы. Это все делается быстро. Очень быстро.
awilum: Также более подробное сравнение с Кандидатом CMS
Вы как-то определитесь для чего ваша система. Рассмотрим одно из применений - сателлиты и ваше сравнение в данном контектсте с Кандидатом.
1. Зачем сателлитам так называемое подобие БД? Там нужно чтобы страничка выводилась как можно быстрее и с минимумом потребляемых ресурсов. В идеале: считал файлик со страничкой, считал файлик шаблона, чуть магии - и получайте поисковики страничку. Именно так и работает Кандидат.
2. Установка. В случае с Кандидатом его нужно просто залить на хостинг. "Просто добавь воды", как говориться.
3. Документация. У меня на знакомство с Кандидатом ушло минут 15. Разбираться там особо не в чем. В TemplateCMS нужно еще посидеть, подумать с вашими вызовами функций...
4. Расширяемость. "Powerful Plugin API" - :D Вы API той же Joomla видели в глаза? В Кандидате все просто и понятно: include() в шаблоне. Для установки Сапы полезная штучка.
5. Модульность. См. п. выше. В Кандидате CMS может быть легко переписана под конкретные нужды. Времени это займет раза в два меньше, чем поиск ответа на вопрос "а что же делает функция addHookP()".
6. Управление пользователями. На сателлите :D Зачем?
7. См. выше.
8., 9. и 10. А в Кандидате этого нельзя?
11. KandidatCMS_v.1.4.4_light в распакованном виде около 326 кб. львиную долю занимают темы оформления.
12. :D
13, 14, 15, 16, 17, 18 и 19 - зачем?
Мораль: вы или создавайте систему для сателлитов/простеньких сайтов, или двигайтесь в сторону порталов.
В первом случае придется переделать всю архитектуру CMS в сторону ее упрощения, во втором случае придется переделать всю архитектуру в сторону расширяемости и модульности, добавить наконец-то контроль прав доступа к той или иной странице, модулю, добавить наконец-то поддержку нормальной БД (база данных на XML - это не база данных, это фигня). Можно таке добавить нормальную систему шаблонизации "аля DLE". Также придется поработать над производительностью и организацией функций/классов.
Dewey, а вам что от CMS надо? Всего лишь новости выводить? Такую и самому написать за 1-2 дня можно, насмотревшись видеоуроков всяких. Работать будет, быстро работать.
Stek: У меня к примеру вызов голого php занимает 311к памяти.
Так оно примерно и есть.
foxi: С стандартным шаблоном и контентом главная страница потребляет 244 Kb оперативки. Не по вордпресовски конечно но тоже непонятно откуда.
Поправочка: вам непонятно. 244 kb оперативки - это да, чертовски много :D
foxi: движок конструктора foxi
Так вот где собака зарыта :D
А теперь о самой CMS. Скачал я это чудо, посмотрел...
Основные моменты:
1) написано все на функциях. Хорошо это или плохо сложно сказать. Но вот зачем в хелперах проверки на function_exists? Если уж создается система, то надо бы как-то решить проблему с именованием функций. Для навигации по коду мне как-то удобней было пользоваться "Поиском по содержимому файлов". Сама CMS организована очень непродуманно и запутанно.
2) глобальные переменные - это зло. В чем сакральный смысл функций:
function getPluginInfo() {
global $plugins_info;
return $plugins_info;
}
?
3) механизм обработки URI и фильтрация входящих данных. Это нужно видеть!
4) и, наверное, самый интересный момент. Так называемый XMLDB, сердце системы. Зачем все хранить в XML? Как показывает тестирование (http://habrahabr.ru/blogs/php/112402/) парсинг XML файлов на порядок медленней того же serialize. "На порядок" - это примерно в 10 раз. Feel the difference, что называется.
Хорошо, когда таких данных немного, но вот когда страничек 100-1000-10000 начинается песец. Сразу пример. В CMS-ке есть метод getAvailablePages(), который загружает и обрабатывает все странички из папки data/pages/. Если таких страниц много, то мало того, что оно будет долго обрабатываться, да еще и памяти будет непомерно жрать. Как минимум - это удвоенный объем папки со страницами.
Ситуация также усугубляется тем, что все настройки хранятся в XML...
Едем дальше. Основной функцией, которая используется для получения данных, является getXML(). При каждом вызове она считывает и декодирует из XML тот или иной файл. Вот вызвали эту функцию десять раз с тем же аргументом в функциях вроде pagesTitle(), pagesDescription(), pagesContent и т.д. - десять раз загрузился и был обработан XML файл со страницей. Нехило так, правда?
Мне страшно подумать, что случится если это все загнать в цикл для всех страниц... Жалких сто страничек - и получаем тысячу считываний и обработок XML. А это все память, это все ресурсы жесткого диска.
Решение тут предельно простое: создать кеш с декодированным содержимым сайта и хранить его в какой-то переменной. При вызове функции getXML() будет производиться проверка на наличие записи в массиве кеша, чтобы лишний раз не лезть на жесткий и не декодировать.
Использование файлов вместо БД тоже накладывает свои ограничения. Что-то сложней сайта-визитки на этой CMS будет проблематично.
netwind: Не я виноват в том, что пользователи DLE не знают как включить полнотекстовый поиск.
Вы бы посмотрели в код как он работает прежде чем писать. Пользователи бывают разные.
netwind: Ну вот пользователь приходит из поисковика на главную постоянно обновляющегося с помощью парсеров говносайта. Заходит, а там ничего нет. Новость "уплыла" на следующие страницы. Второе, что он будет делать - искать через поиск. Первое - закроет окно, говносайт же. Вот такая вот практика.
Вы, похоже, часто с говносайтами дело имеете. Мы вроде как сам DLE рассматриваем и конкретный случай с MySQL сервером, а не говносайты с парсерами в целом.
Raistlin: TiA, Я сказал, что он у меня не падает от хост-трекера.
Я читать умею. Вы уже говорили, что у вас не падает некий сайт от host-tracker. Мы тут вроде как WP рассматриваем и не "у вас", а у конкретного человека.
О своих познаниях в области администрирования вы тоже сказали более чем достаточно, чтобы сформировалось вполне объективное мнение.
Raistlin: ню-ню. У меня с дефолтными настройками ВДСка на 512 метров почему-то пашед...
Ключевое слово "у вас" :) Сам факт что у вас VDS пашет на дефолтных настройках много говорит о вас как об администраторе. Вас ждут великие сюрпризы :D HostAce говорите?
Raistlin: Я вообще не понимаю, откуда вы взяли 60 метров на процесс апача, когда там 10 метрофф...
Опыт. 10 "метрофф" обычно занимает Apache, который отдает статику. Пора бы это уже знать.
Вот только не надо опять.
Что опять? Я ведь еще не начинал :D
Но Template CMS полностью отличается от Get Simple CMS по архитектуре и коду.
Ага. Навскидку.
Template CMS 2.0.3. Файл Security.php:
Get Simple 3.1.0. Файл basic.php:
Такого там много. чувствуется, так сказать, влияние :D Могу еще поискать. Надо?
Код на равне с WP и Drupal по чистоте/грамотности написания.
Не живите иллюзиями и слушайте что вам говорят. Хотя бы иногда.
Покажете мне другую CMS из этой категории в которой Template CMS у которой код чище ?
Легко. Из того небольшого списка, что я посмотрел, мне наибольше Stacey понравилась. Чистый ООП код. Даже обработкой исключений разработчики не побрезговали. Молодцы. Не помешало бы ввести полноценную автозагрузку классов, но с учетом количества классов и так нормально.
Есть, конечно, пару замечаний, но в целом хорошо. Можете в код глянуть, там есть чему поучиться.
Единственный конкурент Template CMS в своей категории - Get Simple
Кстати, ваша CMS в некоторых местах с Get Simple поразительно похожа ;)
Почитав, ваш пост, я даже не буду выбирать цитаты из него и тратить время на объяснения и ответы.
А и вправду? Зачем?
Хотя если честно, то я не жалею, что потратил два-три часика на копание в вашей, так сказать, CMS. Реализация чего-то издалека похожего на базу данных на XML - это мощно :)
Архитектура и продуманность в разу лучше Кандидат CMS, GetSimple...
Взгляните на ту же Stacey или Блоголет. Они получше вашей будут в плане архитектуры и чистоты кода.
Что вы так за Кандидат CMS вцепились? Она в разы проще и быстрее вашей. Для сателлитов и простеньких сайтов самое оно.
В Кандидате все предельно просто работает. Пришел запрос, отфильтровались 3 переменные пути, а также массивы $_POST и $_GET. Дальше сразу происходит подгрузка страницы, разбивка на блоки, формирование меню, подгрузка шаблона с PHP вставками и вывод страницы. Это все делается быстро. Очень быстро.
Также более подробное сравнение с Кандидатом CMS
Вы как-то определитесь для чего ваша система. Рассмотрим одно из применений - сателлиты и ваше сравнение в данном контектсте с Кандидатом.
1. Зачем сателлитам так называемое подобие БД? Там нужно чтобы страничка выводилась как можно быстрее и с минимумом потребляемых ресурсов. В идеале: считал файлик со страничкой, считал файлик шаблона, чуть магии - и получайте поисковики страничку. Именно так и работает Кандидат.
2. Установка. В случае с Кандидатом его нужно просто залить на хостинг. "Просто добавь воды", как говориться.
3. Документация. У меня на знакомство с Кандидатом ушло минут 15. Разбираться там особо не в чем. В TemplateCMS нужно еще посидеть, подумать с вашими вызовами функций...
4. Расширяемость. "Powerful Plugin API" - :D Вы API той же Joomla видели в глаза? В Кандидате все просто и понятно: include() в шаблоне. Для установки Сапы полезная штучка.
5. Модульность. См. п. выше. В Кандидате CMS может быть легко переписана под конкретные нужды. Времени это займет раза в два меньше, чем поиск ответа на вопрос "а что же делает функция addHookP()".
6. Управление пользователями. На сателлите :D Зачем?
7. См. выше.
8., 9. и 10. А в Кандидате этого нельзя?
11. KandidatCMS_v.1.4.4_light в распакованном виде около 326 кб. львиную долю занимают темы оформления.
12. :D
13, 14, 15, 16, 17, 18 и 19 - зачем?
Мораль: вы или создавайте систему для сателлитов/простеньких сайтов, или двигайтесь в сторону порталов.
В первом случае придется переделать всю архитектуру CMS в сторону ее упрощения, во втором случае придется переделать всю архитектуру в сторону расширяемости и модульности, добавить наконец-то контроль прав доступа к той или иной странице, модулю, добавить наконец-то поддержку нормальной БД (база данных на XML - это не база данных, это фигня). Можно таке добавить нормальную систему шаблонизации "аля DLE". Также придется поработать над производительностью и организацией функций/классов.
Dewey, а вам что от CMS надо? Всего лишь новости выводить? Такую и самому написать за 1-2 дня можно, насмотревшись видеоуроков всяких. Работать будет, быстро работать.
У меня к примеру вызов голого php занимает 311к памяти.
Так оно примерно и есть.
С стандартным шаблоном и контентом главная страница потребляет 244 Kb оперативки. Не по вордпресовски конечно но тоже непонятно откуда.
Поправочка: вам непонятно. 244 kb оперативки - это да, чертовски много :D
движок конструктора foxi
Так вот где собака зарыта :D
А теперь о самой CMS. Скачал я это чудо, посмотрел...
Основные моменты:
1) написано все на функциях. Хорошо это или плохо сложно сказать. Но вот зачем в хелперах проверки на function_exists? Если уж создается система, то надо бы как-то решить проблему с именованием функций. Для навигации по коду мне как-то удобней было пользоваться "Поиском по содержимому файлов". Сама CMS организована очень непродуманно и запутанно.
2) глобальные переменные - это зло. В чем сакральный смысл функций:
function getPluginInfo() {
global $plugins_info;
return $plugins_info;
}
?
3) механизм обработки URI и фильтрация входящих данных. Это нужно видеть!
4) и, наверное, самый интересный момент. Так называемый XMLDB, сердце системы. Зачем все хранить в XML? Как показывает тестирование (http://habrahabr.ru/blogs/php/112402/) парсинг XML файлов на порядок медленней того же serialize. "На порядок" - это примерно в 10 раз. Feel the difference, что называется.
Хорошо, когда таких данных немного, но вот когда страничек 100-1000-10000 начинается песец. Сразу пример. В CMS-ке есть метод getAvailablePages(), который загружает и обрабатывает все странички из папки data/pages/. Если таких страниц много, то мало того, что оно будет долго обрабатываться, да еще и памяти будет непомерно жрать. Как минимум - это удвоенный объем папки со страницами.
Ситуация также усугубляется тем, что все настройки хранятся в XML...
Едем дальше. Основной функцией, которая используется для получения данных, является getXML(). При каждом вызове она считывает и декодирует из XML тот или иной файл. Вот вызвали эту функцию десять раз с тем же аргументом в функциях вроде pagesTitle(), pagesDescription(), pagesContent и т.д. - десять раз загрузился и был обработан XML файл со страницей. Нехило так, правда?
Мне страшно подумать, что случится если это все загнать в цикл для всех страниц... Жалких сто страничек - и получаем тысячу считываний и обработок XML. А это все память, это все ресурсы жесткого диска.
Решение тут предельно простое: создать кеш с декодированным содержимым сайта и хранить его в какой-то переменной. При вызове функции getXML() будет производиться проверка на наличие записи в массиве кеша, чтобы лишний раз не лезть на жесткий и не декодировать.
Использование файлов вместо БД тоже накладывает свои ограничения. Что-то сложней сайта-визитки на этой CMS будет проблематично.
Итог: обычная CMS на файлах с кучей недоработок.
skurudo, то есть у вас при обращении http://url-сайта:8080 все хорошо, а при обращении на 80 порт такая фигня?
Попробуйте для проверки такой конфиг:
proxy_pass http://127.0.0.1:8080;
proxy_redirect http://127.0.0.1:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
closeyoureyes, mod_rpaf включен и работает?
Не я виноват в том, что пользователи DLE не знают как включить полнотекстовый поиск.
Вы бы посмотрели в код как он работает прежде чем писать. Пользователи бывают разные.
Ну вот пользователь приходит из поисковика на главную постоянно обновляющегося с помощью парсеров говносайта. Заходит, а там ничего нет. Новость "уплыла" на следующие страницы. Второе, что он будет делать - искать через поиск. Первое - закроет окно, говносайт же. Вот такая вот практика.
Вы, похоже, часто с говносайтами дело имеете. Мы вроде как сам DLE рассматриваем и конкретный случай с MySQL сервером, а не говносайты с парсерами в целом.
TiA, Я сказал, что он у меня не падает от хост-трекера.
Я читать умею. Вы уже говорили, что у вас не падает некий сайт от host-tracker. Мы тут вроде как WP рассматриваем и не "у вас", а у конкретного человека.
О своих познаниях в области администрирования вы тоже сказали более чем достаточно, чтобы сформировалось вполне объективное мнение.
ню-ню. У меня с дефолтными настройками ВДСка на 512 метров почему-то пашед...
Ключевое слово "у вас" :) Сам факт что у вас VDS пашет на дефолтных настройках много говорит о вас как об администраторе. Вас ждут великие сюрпризы :D HostAce говорите?
Я вообще не понимаю, откуда вы взяли 60 метров на процесс апача, когда там 10 метрофф...
Опыт. 10 "метрофф" обычно занимает Apache, который отдает статику. Пора бы это уже знать.