Титла: Автоматична детекция на релативно URL - MVC Публикувано от: b2l в Feb 14, 2012, 22:34 Написах си един рутер, който има за цел да ми създава инстанция на обект от клас подаден по URL-то. Например: http://host/controller/method/arguments.
Е то всичкото добре обаче аз си бачкам на Localhost-а като съм си едитнал default сайта да ми е сочи към: /var/www/project/, но ме накараха да го оставя както си е по default (/var/www) и проекта да си го зарежда като: http://host/project/. При което моя рутер гръмна. Логиката която бях вкарал беше следната: Код И както с сещате за да проработи рутера ми трябваше да сменям индексите на масива, което не ми хареса. Ако тестовия проект е в: /var/www/site/test/project/ver1.0/ - то тогава мамата си трака. Някаква идея или решение на този казус. PS: Дефинирах си RELATIVE_URL променлива, която в момента ми е равна на SITE_ROOT . '/project' - ама проблема ми с масива и цепенето на request string-а си остава. Титла: Re: Автоматична детекция на релативно URL - MVC Публикувано от: VladSun в May 29, 2012, 17:56 mod_rewrite?
Титла: Re: Автоматична детекция на релативно URL - MVC Публикувано от: b2l в May 29, 2012, 18:01 Не, не. В момента използвам рутера на opencart. Да, има запис и в .htaccess-а, ама целта на заданието ми беше да си напиша мой рутер, не да взимам на готово.
PS: А това, което съм написал по-долу е бъгаво. Титла: Re: Автоматична детекция на релативно URL - MVC Публикувано от: SmashThePain в May 29, 2012, 18:13 Не виждам смисъл да преоткриваш топлата вода :)
Ако все пак държиш да го правиш, след като сплитнеш URL-а се движи отзад напред. HTTP протокола има достатъчно удобен начин за предаване на параметри. Тази част arguments от адреса е напълно излишна. Аргументите предполагат променлив брой, понякога въобще може да ги няма. Това само ще ти усложни парсването. Ако масивът има само един елемент ползваш дифолъен контролер и метод. Ако масивът е с два елемента последния е контролера. При 3 или повече елементи. Взимаш последните два и дерзаеш. Този shift е тежка и безмислена операция. Преди време правих рутер за Node.js Стратегията ми беше следната. Регистрирам обект за определен URL. Структурата беше хеш таблица. При рикуестване на URL проверявах дали имам слушател. Ако имам извиквам `index` метода му. Ако нямам, рутера връщаше 404. Титла: Re: Автоматична детекция на релативно URL - MVC Публикувано от: teleport в May 29, 2012, 20:48 Вместо $_SERVER['REQUEST_URI'] ползвай $_SERVER['PATH_INFO'].
|