Чем грозит использование символа '-' в URI?

Scud

Новичок
Чем грозит использование символа '-' в URI?

Откуда возникла проблемма:
--------------------------------------
Я разбиваю URI на части (разделитель '/') и отображаю на тройки class::method(params). Возникла ситуация когда в методе принимающем два параметра один из них (либо первый либо второй) либо оба сразу могуть быть NULL. Для указания что параметр == NULL я хочу использовать такой URI:

/classAlias/actionAlias/-/param2/param3

Я посмотрел в RFC3986, там использование символа '-' в частях URI не запрещено (разрешено ;).

Вопрос:
----------
Кто как считает могут ли быть еще какие подводные камни, типа не все браузеры любят, не все поисковики индексируют,
не все пользователи понимают?
 

magic

lancer
Ну так какие проблемы? Нильсен вообще рекомендовал использовать '-' вместо '_', чтобы пользователи не путали символ подчеркивания с пробелом в ссылках.
 

Scud

Новичок
А если понадобиться именно строковое значение "null"? Мне кажется что вероятность такого события выше, чем вероятность использвания "-" (1) именно как строкового значения.
 

Andreika

"PHP for nubies" reader
А если понадобиться именно строковое значение "null"?
/classAlias/actionAlias/"null"/param2/false/param4
:)

если это у тя чпу, то очень страшная его разновидность )
 

kruglov

Новичок
URL есть иерархическая конструкция. Она представляет собой папки-подпапки. И с папками не бывает - файл есть, а папки нету.

-~{}~ 23.05.06 18:40:

А неиерархические ЧПУ есть странные и непонятно зачем нужные извращения.
 

kruglov

Новичок
А какие же они?

Возникла ситуация когда в методе принимающем два параметра один из них (либо первый либо второй) либо оба сразу могуть быть NULL
Эти 2 параметра находятся в иерархии? Один внутри другого?
 

Scud

Новичок
А почему бы нет,
например, первый параметр это alias раздела, а второй alias подраздела, если есть первый параметр то выводиться выборка раздела (всех его подразделов и других данных), а если есть второй параметр или первый и второй, то выводиться выборка только подраздела.
 

Andreika

"PHP for nubies" reader
а если есть второй параметр или первый и второй
бред какой.. может проще определиться второй или оба?
 

Scud

Новичок
Какие вы все резкие, прям серпом по МТС сразу.

Ну например у меня есть класс обслуживающий портфолио, структура портфолио трёхуровневая - раздел -> серия -> работы

я могу написать класс-контроллер с методом index и двумя параметрами 'раздел', 'серия'

portfolio::index($topic, $series = null)

в клиентской части сайта я конечно пути с черточками делать не буду дабы не смущать никого, даже если мне не нужен $topic, так как я его узнаю по $series, то всё равно я его укажу, чтобы клиент мог стереть в URL последнюю часть и насладиться содержанием всего раздела целиком.

А вот в админке, например, мне $topic в URL передовать совсем не обязательно и я его могу заменить на '-'.
 

Scud

Новичок
Ну если механизм уже есть, что мне его теперь отключать что-ли? ;)
 

kruglov

Новичок
Scud
Если задница есть, через нее что, теперь все делать, "раз механизм уже есть"?
 

Scud

Новичок
Да если б надо было через задницу изворачиваться, а так-то для формирования ссылки на вызов метода контроллера с соотвествующими параметрами мне надо всего лишь написать:

$this->m_core->invokationUrl($controller, $method, $params....);

либо

$this->m_core->redirect($controller, $method, $params....);

и фсё...
 
Сверху