是否有方法可以將請求捕獲到不存在的類。捕獲對不存在的類的請求(不自動加載)
我正在尋找類似__call()和__static()的東西,但對於類而不是類中的方法。我是不是談論自動加載。我需要能夠中斷請求並重新路由它。
想法?
是否有方法可以將請求捕獲到不存在的類。捕獲對不存在的類的請求(不自動加載)
我正在尋找類似__call()和__static()的東西,但對於類而不是類中的方法。我是不是談論自動加載。我需要能夠中斷請求並重新路由它。
想法?
我不知道的攔截
$variable = new Classname();
的任何方式,而不極其資源消耗之類的東西反射或執行之前解析腳本文件。
就我所見,自動加載是最接近你的地方。
如果需要要做到這一點,你可能要建立一個自定義工廠函數
$variable = newClass("Classname", $arg1, $arg2, $arg3);
,做你的攔截那裏。
我不是在談論自動加載。 I 需要能夠中斷 請求並重新路由它。
想法?
我不相信自動加載無法做到你所需要的。如果有未定義類的請求,autoload可以加載相應的類文件,該文件將包含具有反射和__call/__ get等組合的類,並且能夠處理該請求。
+1。你甚至可以在自動載入中創建一個存根類,前提是你不打算在以後真正加載真正的類。 – 2010-06-16 22:24:45
你也可以從自動加載函數中拋出一個異常(只要確保它是spl_autoload棧上的最後一個自動加載器),你可以隨後捕捉和處理任何你想要的東西。 – Mchl 2012-02-15 08:11:55
我很害怕這個。是的,在這種情況下工廠不太可行。它不需要前進,但會更清潔。感謝您的反饋。 – Spot 2010-06-16 22:05:22