Template CMS 2.0 - маленькая и быстрая CMS! - стоимость 0$

J
На сайте с 28.06.2011
Offline
83
#141
awilum:
CMS или сайт собран на коленке. и ?

awilum добавил 28.06.2011 в 20:24
я на html сделаю сайт еще шустрее вашего на коленке и ?

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

Например, пускай программист не будет разбираться с кодом системы, если у него есть коннект к БД mysql, он может создать табличку и работать с нужными ему данными через человеческий SQL.

Пускай не MySQL, пускай даже SQLite2 (третью версию уже начинают поддерживать большинство серверов) — зато можно будет гарантировано избавить себя от кучи гемороя, который конечно же вылезет, когда вы начнете писать, например, тот же плагин форума для своей системы. Ладно проехали про SQL базы... Есть куча no-sql БД (или), которые даже не требуют от хостинга их поддержки. Как говорили выше, обычный serialize тоже в эту копилку.

Кстати, у меня была задача распарсить огромный XML файл (который получился на выходе из Access базы), SimpleXML падал, а вот DOM парсил до конца... Но все равно это жрало кучу ресурсов. Подумайте насчет целесообразности использования конкретно SimpleXML.

Потом уже если начали юзать XML, то почему бы не юзать XSLT?

А вообще вам больше в пиарщики нужно двигать... Нужно отдать должное: в раскрутке вы знаете толк. :)

@TiA, спасибо, запамятовал про б-деревья... Нужно матчасть подучить ;)

[Удален]
#142
SimpleXML падал, а вот DOM парсил до конца.

Я гиговые XML парсил. Ясное дело, что не SimpleXML для этого не подойдет.

Юзал XMLReader для этой цели.

awilum добавил 28.06.2011 в 22:51

SimpleXML, XMLReader, XML Parser.

Для Template CMS лучше всего подходит SimpleXML.

awilum добавил 28.06.2011 в 22:53

По гуглите уже сами почему SimpleXML лучше использовать чем XMLReader, XML Parser для тех задач для которых предназначена Template CMS.

awilum добавил 28.06.2011 в 22:55

1. Одна страница сайта визитки не весит ни мегабайты ни гигабайты.

awilum добавил 28.06.2011 в 23:45

Если файлов больше 100-1000 начинается полный песец. Это ведь нужно сначала их всех считать, потом КАЖДЫЙ файл декодировать из XML, потом некоторые данные проверить и результаты скинуть в отдельный массив.

ткни пальцем


/**
* Load current page
* @global string $defpage default page
* @param array $data uri
* @return string
*/
function lowLoader($data) {
global $defpage;

// If data count 2 then it has Parent/Child
if(count($data) >= 2) {
// If exists parent file
if(fileExists(TEMPLATE_CMS_DATA_PATH.'pages/'.$data[0].'.xml')) {
// Get child file and get parent page name
$child_page = getXML(TEMPLATE_CMS_DATA_PATH.'pages/'.$data[1].'.xml');

// If child page parent is not empty then get his parent
if($child_page->parent != '') {
$c_p = $child_page->parent;
} else {
$c_p = '';
}

// Check is child_parent -> request parent
if($c_p == $data[0]) {
// Checking only for the parent and one child, the remaining issue 404
if(count($data) < 3) {
$id = $data[1]; // Get real request page
} else {
$id = 'error404';
statusHeader(404);
}
} else {
$id = 'error404';
statusHeader(404);
}
} else {
$id = 'error404';
statusHeader(404);
}
} else { // Only parent page come
if(empty($data[0])) {
$id = $defpage;
} else {

// Get current page
$current_page = getXML(TEMPLATE_CMS_DATA_PATH.'pages/'.$data[0].'.xml');

if($current_page != null) {
if($current_page->parent != '') {
$c_p = $current_page->parent;
} else {
$c_p = '';
}
} else {
$c_p = '';
}

// Check if this page has parent
if($c_p !== '') {
if($c_p == $data[0]) {
if(file_exists(TEMPLATE_CMS_DATA_PATH.'pages/'.$data[0].'.xml')) {
$id = $data[0];
} else {
$id = 'error404';
statusHeader(404);
}
} else {
$id = 'error404';
statusHeader(404);
}
} else {
if(fileExists(TEMPLATE_CMS_DATA_PATH.'pages/'.$data[0].'.xml')) {
$id = $data[0];
} else {
$id = 'error404';
statusHeader(404);
}
}
}
}
// Return page name/id to load
return $id;
}
J
На сайте с 28.06.2011
Offline
83
#143
awilum:
Я гиговые XML парсил. Ясное дело, что не SimpleXML для этого не подойдет.
Юзал XMLReader для этой цели.

awilum добавил 28.06.2011 в 22:51
SimpleXML, XMLReader, XML Parser.

Для Template CMS лучше всего подходит SimpleXML.

awilum добавил 28.06.2011 в 22:53
По гуглите уже сами почему SimpleXML лучше использовать чем XMLReader, XML Parser для тех задач для которых предназначена Template CMS.

awilum добавил 28.06.2011 в 22:55
1. Одна страница сайта визитки не весит ни мегабайты ни гигабайты.

awilum добавил 28.06.2011 в 23:45


ткни пальцем


/**
* Load current page
* @global string $defpage default page
* @param array $data uri
* @return string
*/
function lowLoader($data) {
global $defpage;

// If data count 2 then it has Parent/Child
if(count($data) >= 2) {
// If exists parent file
if(fileExists(TEMPLATE_CMS_DATA_PATH.'pages/'.$data[0].'.xml')) {
// Get child file and get parent page name
$child_page = getXML(TEMPLATE_CMS_DATA_PATH.'pages/'.$data[1].'.xml');

// If child page parent is not empty then get his parent
if($child_page->parent != '') {
$c_p = $child_page->parent;
} else {
$c_p = '';
}

// Check is child_parent -> request parent
if($c_p == $data[0]) {
// Checking only for the parent and one child, the remaining issue 404
if(count($data) < 3) {
$id = $data[1]; // Get real request page
} else {
$id = 'error404';
statusHeader(404);
}
} else {
$id = 'error404';
statusHeader(404);
}
} else {
$id = 'error404';
statusHeader(404);
}
} else { // Only parent page come
if(empty($data[0])) {
$id = $defpage;
} else {

// Get current page
$current_page = getXML(TEMPLATE_CMS_DATA_PATH.'pages/'.$data[0].'.xml');

if($current_page != null) {
if($current_page->parent != '') {
$c_p = $current_page->parent;
} else {
$c_p = '';
}
} else {
$c_p = '';
}

// Check if this page has parent
if($c_p !== '') {
if($c_p == $data[0]) {
if(file_exists(TEMPLATE_CMS_DATA_PATH.'pages/'.$data[0].'.xml')) {
$id = $data[0];
} else {
$id = 'error404';
statusHeader(404);
}
} else {
$id = 'error404';
statusHeader(404);
}
} else {
if(fileExists(TEMPLATE_CMS_DATA_PATH.'pages/'.$data[0].'.xml')) {
$id = $data[0];
} else {
$id = 'error404';
statusHeader(404);
}
}
}
}
// Return page name/id to load
return $id;
}

Ок, залезь в PagesAdmin.php и ткни пальцем, где получаешь список всех-всех страниц.

Если у вас CMS для сайтов-визиток, тогда зачем вы анонсировали плагин форума?

Mik Foxi
На сайте с 02.03.2011
Offline
1076
#144
TiA:
Потребление памяти в данном случае как минимум удвоенный объем всех файлов.

а в каком варианте взаимодействия с файлом будет меньше чем в 1,5-2 раза? Вроде как не извращаться, а так и выйдет.

Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ + партнерка, до 40$ с продажи.
J
На сайте с 28.06.2011
Offline
83
#145
foxi:
а в каком варианте взаимодействия с файлом будет меньше чем в 1,5-2 раза? Вроде как не извращаться, а так и выйдет.

У вас парсится XML файл - на выходе получается древовидная структура классов. Очень даже реально, что занимать это все будет больше чем просто открыть файл.

[Удален]
#146

jmas

про екшен page edit я знаю. какое это имеет отношение к скорости фронтенда ?

тогда зачем вы анонсировали плагин форума?

Вы видели этот плагин ? хотя бы альфу ? нет.

На той либе XMLDB что есть сейчас сделать можно но! это приведет к большим проблемам из за роста БД форума XML c которой XMLDB(с SimpleXML) не справится.

Я много раз писал, что даже плагин news не рекомендую использовать в качестве блога!. Нужно ждать пока не будет XMLDB 2 для этих больших целей.

И второе. для унылых Троллей!

http://pluxml.org/ - XML data storage
http://pluxfolio.ru/ - XML data storage
http://get-simple.info/ - XML data storage
http://template-cms.ru/ - XML data storage

Mik Foxi
На сайте с 02.03.2011
Offline
1076
#147

Хотелось бы увидеть форум с использованием xml, вполне осуществимый вариант кстати.

1 тема = 1 xml файл

и списки тем разделов в отдельные файлы, получится не хуже чем ExBB FM 1.0

TA
На сайте с 12.06.2009
Offline
116
TiA
#148
jmas:
@TiA, спасибо, запамятовал про б-деревья... Нужно матчасть подучить

Попутно эту статью можно глянуть http://habrahabr.ru/blogs/sql/102785/

Там более подробно по индексам.

jmas:
А вообще вам больше в пиарщики нужно двигать...

Не нужно. Знал бы человек толк в PR, то здесь бы такого срача небыло бы и близко ;)

awilum:
ткни пальцем

Пожалуйста:


/**
* Get the available pages.
*/
function getAvailablePages() {

$pages_array = array();

$current_page = lowLoader(getParams());
$pages_list = listFiles(TEMPLATE_CMS_DATA_PATH.'pages/','.xml');

// Order by title, author, date
$order_by = 'date';
$order = 'ASC';

$count = 0;
foreach ($pages_list as $file) {
$data = getXML(TEMPLATE_CMS_DATA_PATH.'pages/'.$file);

if(isset($data->parent)) {
$c_p = $data->parent;
} else {
$c_p = '';
}

if ($c_p != '') {
if($current_page == $c_p) {
$parent_data = getXML(TEMPLATE_CMS_DATA_PATH.'pages/'.$c_p.'.xml');
$pages_array[$count]['title'] = $data->title;
$pages_array[$count]['slug'] = $data->slug;
$pages_array[$count]['parent'] = $data->parent;
$pages_array[$count]['sort'] = $data->$order_by;
}
}

$count++;
}

$pages = subval_sort($pages_array, 'sort', $order);

if(isset($pages)) {
include 'templates/frontend/AvailablePagesTemplate.php';
}

}

Сначала собирается список всех файлов, а потом каждый из них считывается и парсится функцией getXML. Дальше этот весь массив сортируется и выводится в виде списка URL.

foxi:
а в каком варианте взаимодействия с файлом будет меньше чем в 1,5-2 раза? Вроде как не извращаться, а так и выйдет.

Здесь вопрос больше не в том, что в 1.5-2+ раза больше памяти надо. Если страничек немного, то это вполне еще терпимо, но когда их сотни...

Профессиональная верстка и разработка сайтов на WordPress (http://www.maultalk.com/topic139110s0.html)
J
На сайте с 28.06.2011
Offline
83
#149
awilum:
jmas
про екшен page edit я знаю. какое это имеет отношение к скорости фронтенда ?


Вы видели этот плагин ? хотя бы альфу ? нет.
На той либе XMLDB что есть сейчас сделать можно но! это приведет к большим проблемам из за роста БД форума XML c которой XMLDB(с SimpleXML) не справится.

Я много раз писал, что даже плагин news не рекомендую использовать в качестве блога!. Нужно ждать пока не будет XMLDB 2 для этих больших целей.

И второе. для унылых Троллей!

http://pluxml.org/ - XML data storage
http://pluxfolio.ru/ - XML data storage
http://get-simple.info/ - XML data storage
http://template-cms.ru/ - XML data storage

Ох... А вы так и подкидываете пищу для троллей, потому что хочется чтобы топик постоянно апался.

Лучше движок пилите:

  • SQL-linke БД
  • Поработать с файловой структурой (потому что, извините, в конфигах хранить функции - это не в какие ворота)
  • Отделить функциональность админки от плагинов (потому что тогда уже совсем непонятно что же такое "плагин", а что админка, что модуль и т.д.)
  • Переход к ООП или хотя бы к статическим классам и автолоадеру
  • Вы там еще с хуками не запутались? Хуки это хорошо, но нужно знать меру.

А то скоро будет что то вроде:


runHook('substr_function_run', $string);
$string = substr($somevar, 5)
runHook('substr_function_end', $string);
[Удален]
#150
SQL-linke БД

им пофиг

http://pluxml.org/ - XML data storage

http://pluxfolio.ru/ - XML data storage

http://get-simple.info/ - XML data storage

http://template-cms.ru/ - XML data storage

ездять на XML data storage

Отделить функциональность админки от плагинов

что тут не понятного ? http://template-cms.ru/docs/develope-plugins все просто и понятно. Всем почему то понятно.

Вот например описал систему так один девелопер: http://get-simple.info/forum/post/10463/#p10463 а не тролль с срача.сру

Переход к ООП или хотя бы к статическим классам и автолоадеру

Недавно был релиз SMF 2.0. Скажите девелоперам что бы они к 2.1 переписали SMF на OOP

А вы так и подкидываете пищу для троллей

Да, на этом сайте много троллей и анананусов.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий