php роутер

Тема закрыта
615
.
# Screamer (05.08.2013 / 22:05)
Fenixrus, как это не то? Все три примера отвечают этим требованиям

Или ты издеваешся или х.з.
зачем громодить для модуля под джон? я же говорю что-то менее быдлокодерское чем мой код компактно и без ооп
.
Screamer
Ну так там вообще делать нечего тогда. Я то думал тебе надо что более серьёзное.
   (+/-)

Тогда вот, на мой взгляд самый оптимальный вариант.
define('_IN_JOHNCMS', true);
require '../incfiles/core.php';

define('DS', DIRECTORY_SEPARATOR);
define('MODULE_DIR', rtrim(dirname(__FILE), '\/') . DS);

$act = is_string($act) && !empty($act) ? $act : 'index';
$action = MODULE_DIR . 'actions' . DS . $act . '.php';
if (is_file($action)) {
require $action;
} else {
header('Location: ' . core::$system_set['homeurl'] . '/?err');
}
.
# Screamer (05.08.2013 / 22:13)
Ну так там вообще делать нечего тогда. Я то думал тебе надо что более серьёзное.
А то РОУТЕР ему подавай
Тогда вот, на мой взгляд самый оптимальный вариант.
[php]define('_IN_JOHNCMS', true
вот то что и надо изменив его и заюзаю если вариантов больше не будет тему #
.
Еще желательно из $act вырезать все символы кроме латинских и цифр. Так безопаснее.
.
Кадило крутится, лавэха мутится
Копипаст из джона. Вполне рабочий и ничего городить не надо.

$array = array(
    'admlist' => 'includes',
    'birth' => 'includes',
    'online' => 'includes',
    'search' => 'includes',
    'top' => 'includes',
    'userlist' => 'includes'
);
$path = !empty($array[$act]) ? $array[$act] . '/' : '';
if (array_key_exists($act, $array) && file_exists($path . $act . '.php')) {
    require_once($path . $act . '.php');
} else {
// Дефолтная страница
}
.
Fenixrus
# Simba (05.08.2013 / 22:18)
Копипаст из джона. Вполне рабочий и ничего городить не надо.

[php]$array = array(
'admlist' => 'includes',
'birth' => 'includes',
'online' => 'includes',
'search' => 'includes',
это тоже самое что и у меня только что у меня автоматом инклуды парсит из папки
.
Кадило крутится, лавэха мутится
# Fenixrus (05.08.2013 / 22:19)
это тоже самое что и у меня только что у меня автоматом инклуды партии их папки
У тебя если честно баян.
Нафик сканить директорию постоянно? Ты ж в неё не каждый день кидаешь файлы. Легче слепить массив и проверять его чем постоянно сканить ФС.
.
# Screamer (05.08.2013 / 22:17)
Еще желательно из $act вырезать все символы кроме латинских и цифр. Так безопаснее.
регулярками?
.
# Simba (05.08.2013 / 22:21)
У тебя если честно баян.
Нафик сканить директорию постоянно? Ты ж в неё не каждый день кидаешь файлы. Легче слепить массив и проверять его чем постоянно сканить ФС.
ну баян так баян прост так немного удобнее на этапах разработки
.
Кадило крутится, лавэха мутится
# Fenixrus (05.08.2013 / 22:22)
ну баян так баян прост так немного удобнее на этапах разработки
х.з. х.з. За модуль наберётся инклудов 10 и всё. Их вбить в массив пару сек посему не вижу смысла чисто ради удобства городить быдлокод. Ну тут уж на твоё усмотрение.
Всего: 23