Napisany gru-20-2008
przyjazne linki mod_mime
Zapewne wielu z Was używa modułu Apache - mod_rewrite do tworzenia przyjaznych linków. Jest już na tyle popularny, że nie wyobrażamy sobie tworzenie profesjonalnych aplikacji bez jego udziału. Otóż istnieje alternatywa - mod_mime! Korzystając z dyrektywy blokowej Files oraz dyrektywy ForceType stworzymy sobie fundament dla Front Controller’a, co w przypadku tego wzorca okazuje się bardzo prostym zadaniem. Zapraszam więc do zapoznania się z klasą kontrolera (z jednego z poprzednich postów):
class FrontController {
private $request;
public function __construct ($path) {
$this->request = $_SERVER['REQUEST_URI'];
$this->request = str_replace($path,'',$this->request);
}
public function Decide () {
switch ($this->request) {
case 'index':
echo 'index';
/* reszta kodu */
break;
case 'page':
echo 'page';
/* reszta kodu */
break;
case 'about':
echo 'about';
/* reszta kodu */
}
}
}
$front = new FrontController ('/forcetype/index/') ;
$front->Decide();
Opis klasy znajdziecie TUTAJ. Naszą stronę umieszczamy w katalogu forcetype. Tak więc pełny adres do aplikacji będzie wyglądać następująco:
Tutaj też znajdować się będzie Front Controller. UWAGA! Plik nazywamy index (tak! bez rozszerzenia!). Na koniec tworzymy plik .htaccess (w katalogu forcetype)
ForceType application/x-httpd-php
</Files>
Dzięki takiej kombinacji otrzymujemy powiązanie pliku z konkretnym typem MIME! I to wszystko. Oto jak będzie wyglądać przykładowe żądania:
Gdzie fragment REQUEST_URI /forcetype/index/ zostanie zignorowany (ustalamy w konstruktorze klasy). Request stanowi ciąg about.
