我是網絡編程新手。我很擅長在桌面上使用c#.net平臺。我試圖理解PHP和PHP框架,但我有點困惑。我明白,一個PHP文件可以將文件中的類導入帶有require_once函數的另一個PHP文件。但是框架不會用require_once函數導入他自己的類。我認爲他們做了一些我不明白的事情。有人可以向我解釋一下嗎?php和自己的框架如何在後臺運行?
1
A
回答
2
大多數框架使用稱爲「自動加載」的技術來自動解析幷包含所需的依賴關係。
「Autoloader」只是一個函數,當一個未知的類被引用時,它被PHP調用。該「自動加載器」可以根據文件名從程序創建該類或簡單地從外部文件創建該類。
目前(PHP 5.1.2及更高版本)正確的方式是使用spl_autoload_register()
。下面是一個自動加載機的一個示例:
function autoload_example($className) {
$normalizedName = strtolower($className);
if(file_exists('includes/' . $normalizedName . '.inc')) {
require_once('includes/' . $normalizedName . '.inc');
} elseif(file_exists('includes/' . $normalizedName . '.inc')) {
require_once('includes/' . $normalizedName . '.php');
} else {
die('Class ' . $className . ' not found');
}
}
spl_autoload_register('autoload_example');
$myAwesomeObject = new Awesome();
在上面的例子,PHP將運行「自動裝載機」 autoload_example
當將撞擊參考類Awesome
。
「Autoloader」將首先嚐試查找文件include/awesome.inc
。如果它能找到它,它會包含它。
如果不是,它會查找名爲include/awesome.php
的文件。如果它能找到它,它會包含它。
如果不是,它將die()
指出它找不到我的Awesome
類。
相關問題
- 1. 如何在spring mvc框架中運行後臺進程
- 2. 如何在後臺自動運行?
- 3. 創建我自己的PHP框架
- 4. PHP和MySQL:自己運行事務嗎?
- 5. 如何在後臺運行
- 6. 使我自己的框架
- 7. php:如何與運行PHP腳本的後臺進行通信?
- 8. 在Windows的後臺運行PHP「exec()」?
- 9. 編寫你自己的JavaScript和使用Yii PHP框架?
- 10. 如何找出我自己執行的後臺作業
- 11. 如何在iPhone的後臺運行sqlite?
- 12. 在後臺運行進程php
- 13. 在後臺運行一個php腳本
- 14. 在PHP中運行後臺進程
- 15. 無法在後臺運行php文件
- 16. nohup:在後臺運行PHP進程
- 17. jQuery&PHP:在後臺運行動作
- 18. 如何在ubuntu的後臺運行多個php腳本?
- 19. 如何在後臺運行其他功能時在後臺運行功能?
- 20. 運行在後臺
- 21. 運行在後臺
- 22. 運行在框架
- 23. PHP:在我自己的MVC框架中包含文件?
- 24. 如何讓腳本在後臺運行
- 25. 如何在後臺運行javascript?
- 26. 如何在後臺運行計時器
- 27. 如何讓方法在後臺運行
- 28. 如何在後臺運行動畫?
- 29. 如何在後臺運行程序
- 30. Python:如何在後臺運行def