Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Проблема с роутером
Сообщения
SL_NeKrOmAnT

Код - потом оценка

25 Дек 2012, 22:46
EmptyZero

Метод detectController требует оптимизации, но еще думаю как лучше сделать..

25 Дек 2012, 23:43
mastes

Okula, Спасибо. Прочёл, понял. Метод класс!

26 Дек 2012, 2:01
SL_NeKrOmAnT

EmptyZero, Ой что-то много всего, ахах

26 Дек 2012, 8:00
EmptyZero

SL_NeKrOmAnT, он выполняет все необходимые мне функции

27 Дек 2012, 17:10
Screamer

А у мну вот че. Очень удобно
[php:1:f946172ef1]
$uri = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$uri = array_map('trim', $uri);
$module = (empty($uri[0]) ? $config['router']['module'] : $uri[0]);
$action = (empty($uri[1]) ? $config['router']['action'] : $uri[1]);
$args = sizeof($uri) > 2 ? array_slice($uri, 2) : array();
$file = realpath($config['path']['root'] . 'modules/' . $module . '/' . $module . '.php');
$redirect = TRUE;
if ($file !== FALSE) {
require $file;
$class = 'Module_' . ucwords($module);
if (class_exists($class)) {
$config['path']['module'] = $config['path']['root'] . 'modules' . DIRECTORY_SEPARATOR . $module . DIRECTORY_SEPARATOR;
$module = new $class($config);
if (method_exists($module, $action)) {
call_user_func_array(array($module, $action), $args);
$redirect = FALSE;
}
}
}

// Redirect to error page
if ($redirect === TRUE) {
if ($module != $config['router']['error']) {
header('Location: ' . $config['path']['home_url'] . $config['router']['error']);
exit;
} else {
throw new Exception('Unable to load error page');
}
}
[/php:1:f946172ef1]

27 Дек 2012, 20:57
Ответить на тему