這已經在我腦海中持續了很長一段時間,我想我應該尋求專家的回答。 我想知道它是否是一種糟糕的編程技術,通過單個文件彙集所有PHP請求。我一直在網站上工作,不確定它是否會隨着增長而擴大規模,因爲我不是100%確定PHP如何處理include()
函數。如果include()是有條件的,即使條件不滿足,PHP是否會包含該文件?
爲了更好地解釋我是如何在這裏建立我的準框架是我的根.htaccess
文件的一個片段:
# > Standard Settings
RewriteEngine On
# Ignore all media requests
RewriteRule ^media/ - [L]
# Funnel all requests into model
RewriteRule ^(.*)$ _model.php [QSA]
所以除了媒體目錄中的內容都被傳遞到這個簡單的腳本。
Inside _model.php
我有我所有的輸入sanitisation,用戶身份驗證,會話數據從數據庫中獲取,任何全局變量(常用的變量,如$ longTime,$ longIP等)被設置。請求通過解釋變量$_SERVER["REQUEST_URI"]
進行路由。
基本上我有一個switch()
聲明,它選擇哪個模塊到include()
。我不明白的是:當PHP執行時,它是否會執行每一個include()
,而不管case指令是否爲真?
我擔心時間後,我將有很多這些模塊的 - 如果PHP確實在運行時包括所有它最終會佔用過多的處理能力和內存模塊...
-
編輯:
我真的只是問,如果PHP會'讀'它可能可能包含的所有文件。我知道它不應該實際執行代碼。 如果我的一個include()
是一個需要很長時間處理的2GB文件,PHP會在執行前始終讀取該文件嗎?
- 編輯:
我找到了另一個類似的問題(我沒有張貼此人之前搜索了很多) PHP behavior of include/require inside conditional
我想我可以關閉這個功能。
不,您的代碼中有一些錯誤。 – 2013-02-06 10:48:07
@Akam我的代碼工作正常 - 我不問代碼中的錯誤。只是想知道PHP在執行之前是否會讀取所有潛在的包含文件。 – cstrat
我認爲不是,一定不是 – 2013-02-06 10:50:14