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:

http://jakasdomena.pl/forcetype/
Tutaj też znajdować się będzie Front Controller. UWAGA! Plik nazywamy index (tak! bez rozszerzenia!). Na koniec tworzymy plik .htaccess (w katalogu forcetype)


<Files index>
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:
http://jakasdomena.pl/forcetype/index/about
Gdzie fragment REQUEST_URI /forcetype/index/ zostanie zignorowany (ustalamy w konstruktorze klasy). Request stanowi ciąg about.

Pozostaw Odpowiedź