2010-11-05 32 views
0

我有一個小應用程序,使用幾個不同的clases。在每個文件中,我將包含路徑設置爲相關文件夾並聲明自動加載函數。PHP autoload和set_include_paths

這工作正常,但必須有一個更好的方式來做到這一點,因爲我必須在每個文件上做到這一點。

有沒有辦法做到這一次,而不必爲每一個單頁加載做。

請原諒,如果這是一個愚蠢的問題,但我是新來的PHP,真的只是想從事的最好方式開始。

謝謝任何​​能夠提供幫助的人。

+1

嗯......你通常確實定義了一個自動加載器,以及它包含所需文件的模式,*一次*。重複每個班的過程聽起來確實是錯誤的。您是否熟悉[手冊]中的自動加載示例(http://www.php.net/manual/en/language.oop5.autoload.php)?他們可能會給你一個關於如何設置的想法 – 2010-11-05 22:20:49

+0

你是說我只需要在索引文件中聲明我的自動加載器。假設我然後移動到聯繫頁面或網站上的其他頁面,那麼我可以依賴已經設置的自動加載器? – David 2010-11-05 22:23:43

+0

@Pekka:我的結果是,閱讀frakkin手冊真的很有意義:) – hummingBird 2010-11-05 22:25:00

回答

0

嘗試在您的index.php(我假設是您的網站的入口點)處寫入__ 自動加載()函數。這應該使自動加載可用於之後調用的所有腳本。這就是我維護我在Zend上運行的網站的方式。

0

定義您需要的所有東西,並且在autoload.php中的所有腳本都是通用的,並從每個腳本加載它?

0

我建議製作一個腳本文件,其中包括標準類,設置任何標準常量,路徑,清理GET/POST等,然後在每個文件的開頭加入一次。你可能有例外,但是這個時間只有90%。

另外,看看__autoload。這可能是解決這個問題的更復雜的解決方案。

0

這樣做的最佳方法取決於您的應用程序的組織方式。如果您的應用只是一組腳本,那麼最好的方法是簡單地重載腳本中的_autoload()函數,然後將該腳本包含在每個文件的頂部。例如:

shared.php

function __autoload($classname){ 
    //Search through class file locations 
} 

script1.php

include('shared.php'); 

這樣做是最好的方式的其他方式。我會建議使用某種MVC框架或編寫自己的基本MVC。這會讓事情變得更容易。一個MVC框架允許你有一個共同的入口點。這在這些時候很有用,因爲您可以很輕鬆地在入口點覆蓋_autoload()函數,並且它將在整個應用程序中生效。這樣,每次創建類時,都可以查看所有預定義的目錄以找到要包含的正確文件。

相關問題