|
| |
|
|
| |
для: Jura
(22.04.2007 в 00:55)
| | | Надёжность в плане хака или что везде работать будет? Откуда ты знаешь что она надёжная? Дай ссылку на неё есле не жалко. Оценим... Я тоже CMS разрабатываю помаленьку, так что можем обмениваться опытом... | |
| |
|
|
| |
|
|
| |
для: hammet
(17.04.2007 в 13:43)
| | | Парочка советов:
1. Выяви все требования к системе таким образом, чтобы четкое было представление о функционале модулей и их количестве.
2. Подбери оптимальный метод проектирования и реализации, технологии и уровень сложности.
3. Определи насколько важна скорость работы системы и уровень логирования.
4. Определись с тем, что ты от нее ожидаешь, от этой системы. Здесь имеется ввиду универсальность, функциональность, быстродействие, отказоустойчивость и остальные критерии, от которых надо отталкиваться при проектировании.
p/s/ Скоро выйдет моя CMS, насколько она будет удобной судить клиентам, но главным для меня критерием является надежность и по первым плодам этот критерий себя оправдывает. | |
| |
|
|
| |
|
|
| |
для: hammet
(20.04.2007 в 14:24)
| | | Про параметры...
Самый простой способ - массив. Т.е. если параметры есть, то они будут в массиве, если же нет, то массив будет пуст. Этим и достигается единообразие модулей.
А вообще по поводу идеи поста, то самое правильное решение найти единообразие в проектировании, обработке параметров и системах хранения данных. Выделить особенности, которыми можно управлять и выработать систему хранения и обработки данных.
Из моего опыта по данному вопросу могу сказать, что материала по данной тематике в сети предостаточно, но вот толковых дельных советов - увы.
Каждый человек, рано или поздно приходящий к решению "написать свою CMS" приходит к этому решению не от сладкой жизни, а от количества грабель, на которые наступил или еще наступит в разбирательстве с готовыми системами управления контентом. Первое что к этому подталкивает - недовольство или неудобство чего-то готового. Второе - нереализуемость устанавливаемых целей и задач. ну а третьим могут служить многие факторы, но главный в том, что если система будет своя, то и управлять ею будет проще, так как архитектура системы будет целиком и полностью известна, все подводные камешки, которые в готовых системах обычно сохраняются под грифом "не документировано разработчиками". | |
| |
|
|
| |
|
|
| |
для: podpole
(21.04.2007 в 21:35)
| | | SLAED CMS LITE 2.1
SystemDK v 1.0
Не очень простые CMS но все же коды их понятны.... | |
| |
|
|
| |
|
|
| |
для: hammet
(21.04.2007 в 17:02)
| | | Ну для примера можешь взять мою CMS (PODPOLE Work Station)
http://real-warez.net/podpole_1.4.rar
Прочитать о ней сможешь тут: http://real-warez.net/2007/01/29/pws__podpole_work_station.html
Но если честно в вышеприведёном коде я ничего не понял... Может у меня тоже практики маловато... Но всёравно посмотри, может чтонибудь для себя возмёш... | |
| |
|
|
| |
|
|
| |
для: hammet
(20.04.2007 в 14:24)
| | | Ну может все же кто-то может что-то сказать? | |
| |
|
|
| |
|
|
| |
для: Loki
(17.04.2007 в 16:28)
| | | Кое что сделал....
Вот собственно сама идея:
Есть что-то вроде диспетчера, который парсит урл, подгружает нужный модуль и передает управление нужному методу. При этом методу должны передаваться параметры. Каждому свои.
Например:
code]
$url = 'http://example.com/index.php?module=news&method=edit&id=15';
[/code]
Подгружаем модуль News
Передаем управление методу Edit
параметр метода $id = 15
<?php
require_once('URL.php');
class Kernel extends Net_URL {
private $start_time;
private $end_time;
private $lib_path;
private $default_module;
private $params;
/**
* PHP5 Constructor
*
* Parses the given url, load module,
* and call to a given method
*
*/
public function __construct() {
parent::__construct($_SERVER['REQUEST_URI']);
$this->start_time = array_sum(explode(' ',microtime()));
$this->lib_path = $_SERVER['DOCUMENT_ROOT'] . '/src/';
$this->default_module = $this->lib_path . 'CMS.class.php';
$module_obj = $this->Load_module();
$this->Load_method($module_obj, $this->Load_params());
}
/**
* Get module name from parsed uri and
* create an object
*
* @return obj module object
* @access private
*/
private function Load_module() {
if (isset($this->querystring['module'])) {
$module = $this->lib_path . $this->querystring['module'] . '/' . $this->querystring['module'] . '.class.php';
if(file_exists($module)) {
require_once($module);
$module_obj = new $this->querystring['module'];
return $module_obj;
} else {
require_once($this->default_module);
$class = basename($this->default_module, '.class.php');
$module_obj = new $class;
return $module_obj;
}
}
else {
require_once($this->default_module);
$class = basename($this->default_module, '.class.php');
$module_obj = new $class;
return $module_obj;
}
}
/**
* Get method name from parsed uri
* and call to this method
* @param obj $module_obj
* @param array $params
* @return bool $success
* @access private
*/
private function Load_method($module_obj, $params = array()) {
if (isset($this->querystring['method'])) {
if(method_exists($module_obj, $this->querystring['method'])) {
$method = $this->querystring['method'];
$module_obj->$method($params);
}
else {
echo 'method not found!';
}
}
else {
echo 'default';
}
}
/**
* Get params from parsed uri
*
* @return array $params
* @access private
*/
private function Load_params() {
if(count($this->querystring > 2)) {
$params = array_slice($this->querystring, 2);
return $params;
}
}
public function __destruct() {
$this->end_time = array_sum(explode(' ',microtime()));
$runtime = $this->end_time - $this->start_time;
return substr($runtime,0,6);
}
}
?>
|
Возникает следующая проблема. Разным методам нужно передавать разное число параметров, а
некоторым и вовсе не нужно....
Я чувствую что проблема решается легко, но пока не додумался как )
Может кто-то предложит способ? Или есть советы/мнения/мысли по поводу самой идеи?
Спасибо... | |
| |
|
|
| |
|
|
| |
для: hammet
(17.04.2007 в 16:16)
| | | Странно что не CMS... | |
| |
|
|
| |
|
|
| |
для: Loki
(17.04.2007 в 15:59)
| | | Спасибо. Помог поиск по ключевому слову "ЧПУ" | |
| |
|
|
| |
|
|
| |
для: hammet
(17.04.2007 в 15:51)
| | | Все равно вопрос очень общий. Ответьте для себя на вопросы:
1. какую работы будет на себя брать движок
2. где будет храниться информация о том, какие модули надо подключить
3. как модули будет подключаться и получать данные
4. где будет храниться дизайн
5. будут ли модули взаимодействовать между собой. если да, то как
...
101. конец первой страницы
Как видите, кроме вас самих тут никто не поможет. Можете скачать готовые системы и постараться разобраться, но это тот еще подарок... Как "надо" делать - вам никто не скажет, так как всем надо по своему. Могут рассказать как сделано, но на такой расплывчатый вопрос ответ будет размером с энциклопедический том. | |
| |
|
|
|