Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Yii:маршрутизация.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Zuldek
Отправлено: 30 Апреля, 2013 - 14:54:57
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




И вновь вопрос о маршрутизации в этом фреймворке.
Так уж вышло, что пришлось на нем поднимать раздел сайта, а не целиком сайт.
Сам фреймворк, вместе с разделом находятся не в корневой директории проекта:

htcdocs/catalog/catalog-new/

запросы вида:
site.ru/catalog/
перенаправляются в:
site.ru/catalog/catalog-new/publ ic/index.php

Соответственно, физические директории проекта yii:

htdocs/catalog/catalog-new/publi c/
htdocs/catalog/catalog-new/protected/
htdocs/catalog/catalog-new/yii/

конфиг:
Спойлер (Отобразить)

Ранее открывал уже тему по этому вопросу.
В тот раз было ограничено время на развлечения с этим Yii.
Поэтому, чтобы запросы нормально перенаправлялись к действия контроллера Demo сделал в Index.php такой костыль:
PHP:
скопировать код в буфер обмена
  1. /*
  2.  
  3. Костыль помогает фреймворку найти действие контроллера. Штатными средствами по ману их (пути) указать не удалось! Yii строит урлы используя REQUEST_URI, поэтому вписал костыльный метод cleanUrl(), который также как createUrl() строит урл, а также, дополнительно удаляет лишнюю его часть (третий параметр метода - регулярка).
  4. Нужно обязательно разобраться как настроить Yii когда на нем работает раздел не в корневом каталоге сайта
  5.        
  6. */
  7. $_SERVER['REQUEST_URI']=str_replace('/catalog/', '/catalog/new-catalog/public/',$_SERVER['REQUEST_URI']);


Теперь вот встала задача раздел расширять, и писать костыль на костыле больше не хочется. Как понятно из комента, - Yii строит из REQUEST_URI урлы для всех ссылок во вьюхах (без костыльного метода cleanUrl() он строит так - /catalog/new-catalog/public/profile?filial_id=6) следовательно пора разбираться.

Вопрос - как написать правила под указанные в конфиге три метода: search, profile, filials, чтобы можно было отказаться от этого костыля с переназначением $_SERVER['REQUEST_URI'] ?

(Отредактировано автором: 30 Апреля, 2013 - 15:00:49)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB