好吧,在非常簡單的小項目中,通常可以在相應命名的文件中定義類。因此例如該自動加載功能將工作:這個目錄結構來組織像Zend Framework這樣的類有一個名字嗎?
function __autoload($class_name) {
require_once $class_name . '.php';
}
但是,當一個項目變大這可能是一個真正的混亂和名稱可能會引起誤解和混亂。爲了解決這個問題,我看到了很多方法。
一些公司在其所有的類中加上前綴......比如「class.MyClass.php」來清理一個層次上的一些混亂。
一些組織他們在目錄中。但是他們都必須添加到包含路徑與減慢應用程序或必須更改爲使用前。代碼可能變得複雜而奇怪。
自5.3版本開始,PHP引入了命名空間,儘管我對他們的功能尚不確定。
不過,我更多的時候,我覺得看到越來越標準,因爲Zend Framework的流行了是這樣的:
function __autoload($className){
require_once str_replace('_','/',$className).'.php';
}
這微不足道的自動加載磁帶機已經表達的概念。
類名的前面加上下劃線作爲分隔符。
例如,「服務」組件爲各種服務提供商提供apis。
Zend/Service/Amazon.php
擁有類Zend_Service_Amazon
。
更多專門的Amaozn s3 API可以在Zend/Service/Amazon/S3.php
中找到,其中類Zend_Service_Amazon_S3
居住。
我認爲這個概念很容易維護,非常直觀,現在很常見,並且適應大多數需求。
但它是如何被稱爲。它有名字嗎?