2011-08-25 34 views
0

我正在尋找一個非常輕量級的路由框架(與php-skel一起去)。用PHP重寫URL而不是服務器配置

我想調查的第一件事是以類似於服務器配置中指定的方式指定php文件中的重寫規則(「未找到」處理程序)。

這裏有一個潛在的例子(但我想知道什麼框架提供的東西這個輕量級):

文件route.php:

route('application/api', '/api/index.php'); 
route('application', '/application/index.php'); 

文件參加辦法/ index.php文件:

route(':module/:action', function($module, $action) { 
    include(__DIR__ . '/' . $module . '/' . $action . '.php'); 
}); 

什麼是輕量級路由框架/功能或技術?

回答

0

PHP有一個parse url函數可以很容易地用於路由。 然後,您可以調用返回的路徑部分的explode()以獲取url組件的數組。

-2

PHP無法以mod_rewrite的方式重寫URL,它只能重定向到其他頁面,這基本上是服務器上命中次數的兩倍(1次命中php腳本,2次命中重定向目標)。

但是,您可以讓PHP腳本動態加載了「重定向」網頁的內容:

switch($_GET['page']) { 
    case 1: 
     include('page1.php'); 
     break; 
    case 2: 
     include('page2.php'); 
     break; 
    default: 
     include('page1.php'); 
} 

this'd是非常透明的用戶,你會得到基本的mod_rewrite作爲同樣的效果。通過適當的查詢和path_info參數,您可以很好地複製mod_write「漂亮」網址。

2

PHP的方式:

http://example.com/index.php/controller/action/variables

$routing = explode("/" ,$_SERVER['PATH_INFO']); 
$controller = $routing[1]; 
$action = $routing[2]; 
$variables = $routing[3];