Доброго времени суток.
Вот наткнулся на небольшую проблему с маршрутами, а именно:
Имеем роутеры в конфиге
'<language:(ru|uk|en)>/<module:\w+>/<controller:\w+>/<action:\w+>/*' => '<module>/<controller>/<action>',
'<language:(ru|uk|en)>/<module:\w+>/<controller:\w+>/<id:\d+>' => '<module>/<controller>/view',
'<language:(ru|uk|en)>/<module:\w+>/<controller:\w+>/*' => '<module>/<controller>',
'<language:(ru|uk|en)>/<module:\w+>/*' => '<module>',
'<language:(ru|uk|en)>/' => 'site/index',
'<language:(ru|uk|en)>/<action:(contact|login|logout)>/*' => 'site/<action>',
'<language:(ru|uk|en)>/<controller:\w+>/<id:\d+>' => '<controller>/view',
'<language:(ru|uk|en)>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<language:(ru|uk|en)>/<controller:\w+>/<action:\w+>/*' => '<controller>/<action>',
urlFormat равен path.
Так вот если построить урл вида http:://example.com/ru/site/test/param1/value1/param2/value2, то на выходе получается массив с параметрами
Array
(
[language] => en
[value1] => param2
[value2] =>
[param1] =>
)
то есть, как я понимаю, получается сработало первое правило
'<language:(ru|uk|en)>/<module:\w+>/<controller:\w+>/<action:\w+>/*' => '<module>/<controller>/<action>'
что привело к неправильному построению массива ключ = значения.
Вопрос состоит в том как, тогда правильно построить правила маршрутизации, чтобы можно было как и в приложении получить правильные параметры, так и в модуле.
При использовании маршрутов вида
'<language:(ru|uk|en)>/<module:(module_name1|module_name_2)/<controller:\w+>/<action:\w+>/*' => '<module>/<controller>/<action>'
все работает корректно. Но я не уверен что это правильный выход с данной ситуации.