Ты здесь вступаешь на очень узкую тропку.просто делаем URL вида
/catalog/sotovaja_svjaz/phones/siemens/42/42.xhtml
и роутер сам поймет, что этот URL, с постфиксом .xhtml - для товара. А ID товара сответственно будет предшествующая постфиксу цифра.

Ты здесь вступаешь на очень узкую тропку.просто делаем URL вида
/catalog/sotovaja_svjaz/phones/siemens/42/42.xhtml
и роутер сам поймет, что этот URL, с постфиксом .xhtml - для товара. А ID товара сответственно будет предшествующая постфиксу цифра.
можно увидеть структуру и небольшой дамп такого решения? и как динамичские URL хранятся, например как в примере с вакансиями?Автор оригинала: c0dex
Я ленивый и храню в виде id-parentid и на этапе обработки адреса /company/about/ выбираю все дерево и клепаю массив из дерева с алиасами, а потом сравниваю с адресом в цикле. Все это можно еще и закешировать, но мне лично пока хватает времени генерации страницы в районе 0,003 сек. =^..^=
У тебя роутер получится черезчур всезнающий. Это не его забота. Он должен найти контроллер и передать тому управление. А уже контроллер должен понять, где там ID товара.и роутер сам поймет, что этот URL, с постфиксом .xhtml - для товара. А ID товара сответственно будет предшествующая постфиксу цифра.
Разбиваешь url на кусочки и потом пробегаешься по массивчику упрощенноВы предлагаете перед КАЖДЫМ запросом стоить дерево из таблицы путей
$tree = array(
0 => array( // дети рута
'company' => array('id' => 1, 'type' => 'page'),
'news' => array('id' => 2, 'type' => 'news'),
),
1 => array( // дети для id=1
'news' => array('id' => 3, 'type' => 'news'),
)
);
ага а программы на компе более логично хранить такя с этим не согласен и поэтому
dll/prog1
/prog2
exe/prog1
/prog2
txt/prog1
/prog2
а не
prog1/dll
/exe
/txt
prog2/dll
/exe
/txt
я просто как бы вообще не юзаю всяких приставок типа html, но в принципе какие проблемы обрабатывать, ты можешь спокойно обрезать .html и передать только число (при этом даже не лезть уже в дерево), это уже вопрос конкретной реализации.в модуль вы отдаете необработанные данные
это, я так понимаю, будет происходить непосредственно в контроллере? Вот это не нравится.но в принципе какие проблемы обрабатывать, ты можешь спокойно обрезать .html и передать только число
да. но это не проблема, можно регулярное выражение хранить а базе и применять его для последней "не найденной" части URLa.чтобы у тебя вместо $path[0] = 2010 было $path['year'] = 2010?
Я же говорю зависит от реализации, спокойно можешь обрезать, где больше нравится.это, я так понимаю, будет происходить непосредственно в контроллере? Вот это не нравится.
А в скриптах их хранить уже не модно?можно регулярное выражение хранить а базе и применять его для последней "не найденной" части URLa
такой вариант не устраивает (2010, 05, 09, '', '', param3)?(2010, 05, 09, param3) - как отличите param1 от param3
Ну не знаю как у тебя, а у меня это не разные модули, и модуль каталог выводит либо список товаров, либо отдельный товар не вижу особого смысла их разделять.а для модуля /catalog/tv/123/ нужно использовать модуль "просмотр товара". Так ведь? Как в данном случае дать понять программе, что нужно подгрузить совершенно иной модуль?
Array
(
[0] => p1
[1] => p2
[2] => p3
[3] => p4
[4] => p5
[5] => p6
[6] => p7
[7] => p8
[8] => p9
[9] => p10
)
У меня есть понятие интерфейса Response. Контроллер имеющий этот интерфейс можно добавить в респонс объект. Оттуда вызывают по очереди все контролеры и в них передают реквест и слушают ответ.и ещё самое важное, мне не ясно. для urla вида /catalog/tv/ сработает модуль catalog, где будут выведены телевизоры - так? а для модуля /catalog/tv/123/ нужно использовать модуль "просмотр товара". Так ведь? Как в данном случае дать понять программе, что нужно подгрузить совершенно иной модуль?