Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MVC] Pytanie o Router.
Forum PHP.pl > Forum > PHP
stefand
Witam serdecznie.

Chce napisać router do swojej aplikacji. Mam na razie takie coś.
  1. <?php
  2. class Router{
  3.    private static $sRequest;
  4.    private static $aRequest;
  5.    
  6.    protected static $sDelimiter = '/';
  7.    
  8.    private static $system_base;
  9.    
  10.    
  11.    protected function __construct(){}
  12.    
  13.    public static function setRequest(){
  14.        self::$system_base = Config::_get('main.system_base');
  15.        self::$sRequest = $_SERVER['REQUEST_URI'];
  16.        echo self::parseUrl();
  17.    }
  18.    
  19.    private static function parseUrl(){
  20.        $url = str_replace(self::$system_base, '', self::$sRequest);
  21.        
  22.        $link_values = explode(self::$sDelimiter, $url);        
  23.        
  24.        self::$aRequest['lang'] = array_shift($link_values);
  25.        self::$aRequest['module'] = array_shift($link_values);
  26.         self::$aRequest['action'] = array_shift($link_values);
  27.         self::$aRequest['params'] = $link_values;
  28.        
  29.        
  30.              
  31.    }
  32. public static function getRequest(){
  33. return self::$aRequest;
  34.  
  35.    
  36.    
  37. }
  38. ?>


Proszę o spostrzeżenia i komentarze. Czego mi jeszcze brakuje?
Jak rozwiązać problem nazewnictwa parametrów?

przykladowy link wygląda następująco
pl/muza/test/2/2.2

2 i 2.2 to są parametry.
Nie mam pojęcia jak rozwiązać kwestę nazewnictwa kolejnych parametrów.
Wpis w htaccess
RewriteRule ^([a-z]+)/([a-z]+)/([a-z]+)/?(.*)?$ index.php?lang=$1&controller=$2&action=$3 [L]

i jak potem to wrzucić do kontrolera tak żeby wiedzial ze przez parametr 1szy rozumiem np. nazwe wykonawcy przez parametr drugi plyte a parametr trzeci utwór. Oczywiście to jest przykład.
Oczywiście parametrów może być kilka. Pamietanie za co jaki parametr jest odpowiedzialny bedzie troche meczące
erix
Zrób tak, jak w większości frameworków - przekazywanie całego żądania do skryptu i w nim odpowiednio parsuj parametry.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.