Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012
Помог: 7 раз(а)
Я храню pattrrn`ы в ini файлах, и проверяю их preg_match. Работает нормально. А есть еще идеи?
risktaker
Отправлено: 03 Марта, 2013 - 13:10:16
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Февр. 2013
Помог: 0 раз(а)
dubasua пишет:
Я храню pattrrn`ы в ini файлах, и проверяю их preg_match. Работает нормально. А есть еще идеи?
pattern-ы именно для каждого контроллера или общие?
dubasua
Отправлено: 03 Марта, 2013 - 13:20:54
Посетитель
Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012
Помог: 7 раз(а)
Контроллер у меня один, он и ищет паттерн, а от совпавшего паттерна, я пускаю другой компонент, если другой компонент парсит урл еще раз, и дальше делает свое дело, то один, а если нет, то каждый. например, есть урл "/категории", я его храню так "/^\/категории$/", если категория принимает другой парметр, например страницы, я его записываю так "/^\/категории(\/[\d])?$/", так как страниц может быть много, нет смысла записывать его так "/^\/категории\/1$/", "/^\/категории\/2$/","/^\/категории\/3$/"
risktaker
Отправлено: 03 Марта, 2013 - 13:25:11
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Февр. 2013
Помог: 0 раз(а)
Ок, другой вопрос - как передать контроллеру id статьи, как свойство класса или как параметры при вызове екшна?
digi
Отправлено: 03 Марта, 2013 - 13:28:07
Посетитель
Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
ручным ;) тогда при изменении приложения не будет зависимости формата запросов к именам и методам классов... тем более что маршрутов не так уж и много требуется...
для ускорения партинга автоматически генерируется файл appUrlMatcher php в котором аккуратненько расписан процесс парсинга и от возвращает в ответ имя контроллера, экшена и аргументов для него
dubasua
Отправлено: 03 Марта, 2013 - 13:29:27
Посетитель
Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012
Если именными то тогда вопрос:
Есть 10 контроллеров, тогда рутов должно быть больше
с чего вдруг?? форматы ссылок (маршруты) по которым работает приложение, никак не связано с его внутренним устройством. может быть 1 котроллер и 10 экшенов, может быть 1 контроллер, 1 экшен, а отличаться все роуты только аргументами...
опять же надо иметь ввиду, что нужна еще обратная генерация маршрута! например надо надо получиться ссылку первой записи блога, значит должен быть сервис который это сделает, напрмиер так:
Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012
Помог: 7 раз(а)
digi пишет:
да легко! )
А если у категории блога, еще 5 категорий вложенных друг в друга, а потом когда нибудь понадобится перенести пост из пятой категории в первую???
digi
Отправлено: 03 Марта, 2013 - 14:09:50
Посетитель
Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
dubasua пишет:
А если у категории блога, еще 5 категорий вложенных друг в друга, а потом когда нибудь понадобится перенести пост из пятой категории в первую???
есть такие задачи но это уже называется "динамический роутинг" т.е. в таком случае разгребание строки запроса берет на себя сам контроллер, который может переворошить по категориям, которы хранятся например в БД, например так:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.