Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Правильность кода
shakatakas  
 ۩  [x]    Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 40
Пользователь №: 22651
На форуме: 14 лет, 10 месяцев, 14 дней
Карма:




Всем здрасте, имеется такой вот код роутинга, хочется узнать насколько он "правильный" и есть ли велосипеды по короче и быстрей??

$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 написал(а):
Что можно/нужно еще подправить? wink.gif

Спустя 45 минут, 55 секунд (23.08.2012 - 16:01) johniek_comp написал(а):
shakatakas
посмотри как роутинг реализован в кохана, и скосишь сразу свой код smile.gif

Спустя 17 минут, 56 секунд (23.08.2012 - 16:19) inpost написал(а):
shakatakas
Ну для начала, можно было бы проще использовать in_array smile.gif
Ну а потом, не очень мне нравится такой роутер. Каждый делает в своём стиле, и этот не мой стиль! smile.gif

Спустя 30 минут, 22 секунды (23.08.2012 - 16:50) shakatakas написал(а):
Ясненько, а пример более продуктивного роутера предоставите? rolleyes.gif

Спустя 3 часа, 39 минут, 41 секунда (23.08.2012 - 20:29) DarkLynx написал(а):
Цитата (shakatakas @ 23.08.2012 - 14:50)
Ясненько, а пример более продуктивного роутера предоставите? rolleyes.gif

kohana framework

Спустя 5 минут, 26 секунд (23.08.2012 - 20:35) shakatakas написал(а):
Мда)

Спустя 7 минут, 3 секунды (23.08.2012 - 20:42) inpost написал(а):
shakatakas
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() wink.gif



Спустя 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 день, 10 часов, 8 минут, 31 секунда (25.08.2012 - 19:45) shakatakas написал(а):
Всем спасибо за ответы. Тему можно закрывать если тут такое котирует ph34r.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса