Framework Router

dakata__92

Super Moderator
Каква е целта на рутерите? Става дума за презаписване на REQEST информация ли? Как се прави един прост рутер и как се връзва с реална променя на url бара в браузера?
http://www.phpclasses.org/package/7405-PHP-Parse-and-build-URIs-from-routing-rules.html#view_files
Тук има нянакъв прост рутер но не разбирам защо е наложително да се прави такова обработване на линка. Все пак с един .htaccess става в пъти по-бързо от колкото обработката с работната рамка. Моля за обяснения и примери а не за отсъждания от рода (ти не си чел) напротив чел съм много и искам да поема по-голямо количество информация, като най-вече да си разясня изобщо какво налага това използване.
 
eLite каза:
Опитай да map-неш URL с htaccess към метод на даден клас и ще разбереш каква им е целта.
Може ли да ми дадеш някакъв мега базов пример. Като цяло от думите ти и замислянето над тях ми се втълпиха малко идеи но все пак някъде туториал или пример ако има ще съм благодарен. :)
 
dakata__92 каза:
eLite каза:
Опитай да map-неш URL с htaccess към метод на даден клас и ще разбереш каква им е целта.
Може ли да ми дадеш някакъв мега базов пример. Като цяло от думите ти и замислянето над тях ми се втълпиха малко идеи но все пак някъде туториал или пример ако има ще съм благодарен. :)
За съжаление не мога да ти дам пример, поради простата причина, че това (до колкото знам) е невъзможно. Точно за това и се използват тези router-и.

Вероятно има някакви Apache модули за целта, но имай в предвид, че малко хостинг компании биха инсталирали такива за потребители на на споделен хостинг.

Естествено можеш да направиш htaccess за пренаписани URL-и, които да сочат към някакви PHP файлове, които от своя страна ще заредят необходимия метод от даден клас. Но е по-лесно с router.
 
eLite каза:
dakata__92 каза:
eLite каза:
Опитай да map-неш URL с htaccess към метод на даден клас и ще разбереш каква им е целта.
Може ли да ми дадеш някакъв мега базов пример. Като цяло от думите ти и замислянето над тях ми се втълпиха малко идеи но все пак някъде туториал или пример ако има ще съм благодарен. :)
За съжаление не мога да ти дам пример, поради простата причина, че това (до колкото знам) е невъзможно. Точно за това и се използват тези router-и.
В какъв смисъл е невъзможно?
 
Редактирал съм си предното мнение, но ето ти пример.

PHP:
<?php
class SomeClass {
	public function Index() {
		echo 'This is Index Page';
	}

	public function About() {
		echo 'This is About Page';
	}
}

Опитай с .htaccess да извикаш някой от методите на класа.
 
eLite каза:
Редактирал съм си предното мнение, но ето ти пример.

PHP:
<?php
class SomeClass {
	public function Index() {
		echo 'This is Index Page';
	}

	public function About() {
		echo 'This is About Page';
	}
}

Опитай с .htaccess да извикаш някой от методите на класа.
Нещо не се справям да извикам методите. Какво да напиша в .htaccess?
 
dakata__92 каза:
eLite каза:
Редактирал съм си предното мнение, но ето ти пример.

PHP:
<?php
class SomeClass {
	public function Index() {
		echo 'This is Index Page';
	}

	public function About() {
		echo 'This is About Page';
	}
}

Опитай с .htaccess да извикаш някой от методите на класа.
Нещо не се справям да извикам методите. Какво да напиша в .htaccess?

Точно това е проблема.. Mod Rewrite няма методите за подобно действие.
 
Ок :?: Но тогава как се пренаписва самият адрес в бара на браузера?
Примерно имам index.php?news=title-name-show и имам рутер който обработва линнка и взима REQEST информацията примерно от прпоменливата сървър, как ще насоча линка така, че да се показва в бара примерно news/title-name-show без index.php? Самото показване и насочване как тава?
 
Ще започна с това - забрави всичко дет си чел за рутери. (Или не си го схванал, или кой знае кво си чел :D).

Идеята и ролята на рутера в "работна рамка" е както и на рутер в мрежа.
Кво е тва рутер? През рутера минава всяка заявка която трябва да стигне/направи/или един бог знае какво действие.
Сега имаш 2 реда .htaccess които ясно и просто казват - абе сървър я прекарай всяка заявка която е към несъществуващ файл към рутера. Сървъра го прави щот е готин.

И сега до рутера стига някакъв стринг да кажем "/profile/sorRy/edit".
Ся тъй като ти си си писал рутера и съответно тоя рутер някак (било то конфиг/хардкоднато/по параметри/хвърга боб?) знае че profile е class и прави една магия било то с reflection или други черни магии, зарежда/извиква тоя клас Profile.class.php (примерно, как го намира, или как се казва е изцяло по твое усмотрение), обаче важната част, рутера също знае и че последния параметър винаги (изцяло примерно, зависи как си искаш адресите, също и как си напишеш рутера) че това ще е метод/функция иначе казано/ от този клас, и го извиква като му подава "sorRy" + други параметри ако съответно има и метода ги поддържа (или пък всеки метод ти приема само масиви и ти се оправяш в него, сам решаваш как и по какъв начин да го направиш), сега вече ти в метода може да си правиш каквото душа ти иска с данни-те.

Ninja edit: Ти твоите потребители винаги ги пращаш към несъществуващ адрес, който рутера ще хване благодарения на готиния сървър (ех как да не ги обичаш тези сървъри).
 
Тоест, драскам си сайтчето и примерно пренаписвам с .htaccess адресите на сайта като ги правя естествено шаблонни и след това рутера взима адреса така де стринга и хоп някакъв метод обработва информацита. Така до тук всичко е ок, но ми излиза една така леко болна мисъл... Това означава, че самата работна рамка ще изгради сайт от типа ONE MAIN PAGE примерно index.php и от там нататъка ще прави всякъкви шашми за визуализация и обработка на информацията. Всичката тази мъка, за добро СЕО... :D :D :D
 

Back
Горе