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

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

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



Новичок
*

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




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

$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';}
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Placido  
Дата
Цитировать сообщение

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



Наблюдаю
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1241
Пользователь №: 29445
На форуме: 5 лет, 2 месяца, 29 дней
Карма: 143




Цитата (shakatakas @ 23.08.2012 - 14:11)
if ($value !== $dir & !empty($value))

В условии необходимо использовать логическое И (&& или and), а не побитовое (&):
if ($value !== $dir && !empty($value))
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
shakatakas  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

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




Что можно/нужно еще подправить? wink.gif

Это сообщение отредактировал shakatakas - 23.08.2012 - 16:16
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
johniek_comp  
Дата
Цитировать сообщение

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



женат на Node.JS
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2478
Пользователь №: 28490
На форуме: 5 лет, 5 месяцев, 9 дней
Карма: -19

Трезвый :
21 год, 10 месяцев, 18 дней


shakatakas
посмотри как роутинг реализован в кохана, и скосишь сразу свой код smile.gif


--------------------
user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

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



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22688
Пользователь №: 20039
На форуме: 6 лет, 11 месяцев, 25 дней
Карма: 599




shakatakas
Ну для начала, можно было бы проще использовать in_array smile.gif
Ну а потом, не очень мне нравится такой роутер. Каждый делает в своём стиле, и этот не мой стиль! smile.gif


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
shakatakas  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

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




Ясненько, а пример более продуктивного роутера предоставите? rolleyes.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
DarkLynx  
Дата
Цитировать сообщение

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



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 317
Пользователь №: 31276
На форуме: 4 года, 10 месяцев, 4 дня
Карма: 15




Цитата (shakatakas @ 23.08.2012 - 14:50)
Ясненько, а пример более продуктивного роутера предоставите? rolleyes.gif

kohana framework
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
shakatakas  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

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




Мда)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

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



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22688
Пользователь №: 20039
На форуме: 6 лет, 11 месяцев, 25 дней
Карма: 599




shakatakas
irbis, zend, kohana, yii, посмотри что делают они. А вообще, если твой работает так, как ТЕБЕ надо, то нафиг менять? Под каждую задачу своё!


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
shakatakas  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

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




Я собственно хотел советов услышать вдруг есть другие пути, легче, меньше да правильней.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
Дата
Цитировать сообщение

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




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11783
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 9 дней
Карма: 428

Трезвый :
7 лет, 3 месяца, 9 дней


Цитата
$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, воспользуйся строковыми функциями.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
казин-федор.рф  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









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 .
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
shakatakas  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

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




Всем спасибо за ответы. Тему можно закрывать если тут такое котирует ph34r.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

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