2014-03-27 50 views
0

我正在編寫一個PHP應用程序。我想爲我的應用程序的所有請求創建一個點。它是有根據的URL參數的index.php文件路由&邏輯的最佳方式,使用開關的情況下,包括所需的文件&創建完整的頁面?PHP應用程序中的基本路由

是否有任何其他方式有效地做到這一點?

+1

你可以做到這一點,通過對象 - 這將排序是一串邏輯運算符(如情況)反正,但它可能會更整潔漂亮了比在程序代碼做這件事。 – Fluffeh

+0

是的,就是這樣。大多數PHP框架都以這種方式進行路由。閱讀一些關於PHP路由的教程。但是SO不是問這樣的問題的地方 - 有多個正確的答案。 –

+0

是的,它是大多數PHP應用程序的工作方式。但是你可以通過使用php URL路由來使它更加清潔。看看[其他SO問題](http://stackoverflow.com/questions/7642403/pros-cons-of-using-index-phpq-path-instead-of-index-php-path-when-routing-url ) –

回答

0

你利用一個MVC狀結構的?

對我來說,index.php應該引導該腳本,它通常包含我的應用程序中的幾行代碼,僅此而已。

而且我相信管理路線的最廣泛使用的方法是通過Apache的mod_rewrite或其他web服務器的類似的方法。

使用switch聲明可以簡單地不可收拾任何超過10-20的情況下多。這裏是我通常做的一個非常簡化的版本:

http://localhost/news/100將翻譯爲http://localhost/index.php?module=news&id=100

index.php我有一個請求處理器其加載module這樣的:

$app->run($_REQUEST['module'], 
    array(
     'action' => $_REQUEST['action'], 
     'id'  => $_REQUEST['id'] 
    ) 
); 

module有幾個actions。 方法app看是否有任何action指定或沒有;如果不是,則會觸發default操作。在這種情況下,它將show與ID爲100的消息。像這樣將觸發edit行動:

http://localhost/news/edit/100 

這只是一個想法,裸骨頭。您不應該嘗試在應用程序中使用上述PHP代碼,因爲它不是生產級代碼。我只想簡要解釋switch聲明方法的另一種方法。