$dir = 'pimp_style';
$module_array = scandir('./module/');
$rtr_url = explode('/', $_SERVER['REQUEST_URI']);
$rtr = array();
foreach ($rtr_url as $value) {
if ($value !== $dir & !empty($value)) {
$rtr[] = trim($value);
}
}
if(isset($rtr[0])) {
foreach ($module_array as $var) {
if ($rtr[0].'.php' == $var) {
include './module/'.$var;
}
}
} else {include './module/index.php';}
Спустя 1 час, 58 минут, 31 секунда (23.08.2012 - 15:10) Placido написал(а):
Цитата (shakatakas @ 23.08.2012 - 14:11) |
if ($value !== $dir & !empty($value)) |
В условии необходимо использовать логическое И (&& или and), а не побитовое (&):
if ($value !== $dir && !empty($value))
Спустя 5 минут, 52 секунды (23.08.2012 - 15:15) shakatakas написал(а):
Что можно/нужно еще подправить?
Спустя 45 минут, 55 секунд (23.08.2012 - 16:01) johniek_comp написал(а):
shakatakas
посмотри как роутинг реализован в кохана, и скосишь сразу свой код
посмотри как роутинг реализован в кохана, и скосишь сразу свой код
Спустя 17 минут, 56 секунд (23.08.2012 - 16:19) inpost написал(а):
shakatakas
Ну для начала, можно было бы проще использовать in_array
Ну а потом, не очень мне нравится такой роутер. Каждый делает в своём стиле, и этот не мой стиль!
Ну для начала, можно было бы проще использовать in_array
Ну а потом, не очень мне нравится такой роутер. Каждый делает в своём стиле, и этот не мой стиль!
Спустя 30 минут, 22 секунды (23.08.2012 - 16:50) shakatakas написал(а):
Ясненько, а пример более продуктивного роутера предоставите?
Спустя 3 часа, 39 минут, 41 секунда (23.08.2012 - 20:29) DarkLynx написал(а):
Цитата (shakatakas @ 23.08.2012 - 14:50) |
Ясненько, а пример более продуктивного роутера предоставите? |
kohana framework
Спустя 5 минут, 26 секунд (23.08.2012 - 20:35) shakatakas написал(а):
Мда)
Спустя 7 минут, 3 секунды (23.08.2012 - 20:42) inpost написал(а):
shakatakas
irbis, zend, kohana, yii, посмотри что делают они. А вообще, если твой работает так, как ТЕБЕ надо, то нафиг менять? Под каждую задачу своё!
irbis, zend, kohana, yii, посмотри что делают они. А вообще, если твой работает так, как ТЕБЕ надо, то нафиг менять? Под каждую задачу своё!
Спустя 7 минут, 49 секунд (23.08.2012 - 20:50) shakatakas написал(а):
Я собственно хотел советов услышать вдруг есть другие пути, легче, меньше да правильней.
Спустя 5 часов, 42 минуты, 9 секунд (24.08.2012 - 02:32) Invis1ble написал(а):
Цитата |
$module_array = scandir('./module/'); |
Цитата |
foreach ($module_array as $var) { if ($rtr[0].'.php' == $var) { |
зачем шерстить всю директорию и потом перебирать весь массив (причем без break), если понадобится подключить лишь один файл? открой для себя file_exists()
Спустя 3 минуты, 53 секунды Invis1ble написал(а):
Цитата |
$rtr_url = explode('/', $_SERVER['REQUEST_URI']); $rtr = array(); foreach ($rtr_url as $value) { if ($value !== $dir & !empty($value)) { $rtr[] = trim($value); } } |
Это тоже лишние и неоптимальные движения. Тебе ведь нужен всего лишь последний сегмент url, воспользуйся строковыми функциями.
Спустя 7 часов, 4 минуты, 29 секунд (24.08.2012 - 09:36) казин-федор.рф написал(а):
shakatakas,
1) Убери сканирование папки, это не производительно;
2) Абстрагируйся от файловой системы, то есть если у тебя был например url типа site.ru/page.php или site/module/page.php, сделай, что то типа:
site.ru/page;
site.ru?route=page;
site.ru/index.php/page
чем проще у тебя url, тем проще переход в режим ЧПУ и обратно.
Ну и велосипед, который быстрее твоего, да и любого роутера(на регулярках), http://pyha.ru/forum/topic/8085 .
1) Убери сканирование папки, это не производительно;
2) Абстрагируйся от файловой системы, то есть если у тебя был например url типа site.ru/page.php или site/module/page.php, сделай, что то типа:
site.ru/page;
site.ru?route=page;
site.ru/index.php/page
чем проще у тебя url, тем проще переход в режим ЧПУ и обратно.
Ну и велосипед, который быстрее твоего, да и любого роутера(на регулярках), http://pyha.ru/forum/topic/8085 .
Спустя 1 день, 10 часов, 8 минут, 31 секунда (25.08.2012 - 19:45) shakatakas написал(а):
Всем спасибо за ответы. Тему можно закрывать если тут такое котирует