我有一個網站,它使用庫文件lib.client.php
存儲在我的標準網站根目錄下的php
文件夾中,幷包含一系列我已構建的類。__自動加載和包含文件
我將不得不在require_once
這個庫文件在幾乎每一個頁面,我可以實現這個最好的方式是什麼?此外,我是否應該使用__autoload
來實現這個功能的一些組合?
看到一個非常類似的問題,涉及到這個問題,但提供了一個非常具體的答案,我不能真正使用,並且在__autoload
函數中查找了一下,我想爲我的要求得到更詳細的答案。
我有一個網站,它使用庫文件lib.client.php
存儲在我的標準網站根目錄下的php
文件夾中,幷包含一系列我已構建的類。__自動加載和包含文件
我將不得不在require_once
這個庫文件在幾乎每一個頁面,我可以實現這個最好的方式是什麼?此外,我是否應該使用__autoload
來實現這個功能的一些組合?
看到一個非常類似的問題,涉及到這個問題,但提供了一個非常具體的答案,我不能真正使用,並且在__autoload
函數中查找了一下,我想爲我的要求得到更詳細的答案。
您使用__autoload(或更好:spl_autoload_register;甚至更好:自動加載一些別人寫的),如果:
你的情況:只要使用require_once(或重構,但我不會打擾)。
在'__autoload'上使用'spl_autoload_register'的主要原因是什麼? – 2013-02-13 01:02:42
你可以spl_autoload_register許多功能,你只能有一個__autoload。使用原始的__autoload可能會碰到一些有自己的自動加載方案的庫。 – fdreger 2013-02-13 01:08:36
自動加載機只對加載類有意義。通常在類和文件之間有1:1映射。否則,您需要具有類文件映射/緩存的智能解析器。如果你有一個只包含功能的腳本,這不是一個選項。 – mario 2013-02-13 00:55:10
那麼你會建議我分手我的文件嗎? – 2013-02-13 01:01:29
如果有效,爲什麼改變它?如果代碼庫足夠小以保持連貫性,那麼不會。但是'__autoload'然後只需要'require_once'那個文件,否則失敗的未知類。這是比簡單地使用require_once本身更多的代碼。 – mario 2013-02-13 01:05:37