我正在編寫一個PHP應用程序。我想爲我的應用程序的所有請求創建一個點。它是有根據的URL參數的index.php文件路由&邏輯的最佳方式,使用開關的情況下,包括所需的文件&創建完整的頁面?PHP應用程序中的基本路由
或
是否有任何其他方式有效地做到這一點?
我正在編寫一個PHP應用程序。我想爲我的應用程序的所有請求創建一個點。它是有根據的URL參數的index.php文件路由&邏輯的最佳方式,使用開關的情況下,包括所需的文件&創建完整的頁面?PHP應用程序中的基本路由
或
是否有任何其他方式有效地做到這一點?
你利用一個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
聲明方法的另一種方法。
你可以做到這一點,通過對象 - 這將排序是一串邏輯運算符(如情況)反正,但它可能會更整潔漂亮了比在程序代碼做這件事。 – Fluffeh
是的,就是這樣。大多數PHP框架都以這種方式進行路由。閱讀一些關於PHP路由的教程。但是SO不是問這樣的問題的地方 - 有多個正確的答案。 –
是的,它是大多數PHP應用程序的工作方式。但是你可以通過使用php URL路由來使它更加清潔。看看[其他SO問題](http://stackoverflow.com/questions/7642403/pros-cons-of-using-index-phpq-path-instead-of-index-php-path-when-routing-url ) –