簡體   English   中英

對PHP類使用'.class.php'擴展名?

[英]Use '.class.php' extension for PHP classes?

通常的做法是為PHP類添加'.class.php'擴展名嗎?

在PHP.net上: http//php.net/manual/en/function.spl-autoload-register.php有一些這樣的例子:

// Or, using an anonymous function as of PHP 5.3.0
spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

它使用.class.php擴展名。

PHP代碼應該像這樣編寫嗎? 我以前從未見過它,它是新的嗎? 這是PHP中的一種新功能,也許它是?

編輯 :'功能'不是一個好詞! 也許我應該問這是一些標准還是慣例。

謝謝。

這不是一個功能,它只是一個你不時會出現的慣例。 是否遵循它是您和您的團隊的選擇。

我個人的意見是,由於選擇是任意的,這種特殊的風格與PSR-0自動加載器規范相矛盾,你應該通過,因為:

  • PSR-0被更廣泛地使用,所以在所有其他條件相同的情況下,它將是一個更好的慣例
  • 遵循“.class.php”樣式意味着無法使用符合PSR-0標准的自動加載器(在線有很多)並且無需修改即可使用它

這主要用於確保自動加載器所針對的類文件,您經常有其他.php文件,如模板,腳本,如bootstrapping或配置文件,它們是.php文件,但絕不應該被解釋為類

這不是一個功能,它只是一種非常簡單,實用的方法來保持您的代碼組織,更重要的是,避免自動加載的問題。

假設您有一個名為User類,並且您的站點有一個頁面,該頁面由腳本生成: User.php 如果需要User類的實例,將調用自動加載器函數,並將User作為參數。 在查找名為User.php的文件時,您可能包含一個文件,而不是類定義。 這就是為什么你可以(並且應該)在他們的名字中給出一些額外的類定義。 然后你可以編寫自動加載器來查找[[class name]].class.php ,整齊地避開User.php文件。

這是它的底線。 當然 - 還要考慮名稱空間,以及保持代碼組織的最現代的方式:目錄( set_include_path

對於包含類的php文件,使用.class.php擴展名絕對不是必需的。 但它也不會破壞任何東西。

這是為了更好地理解這些文件的全部內容。 所以,當你看到filename.class.php時,你知道,這個文件包含類文件名。

如果您將類命名為class.php,則不會觸發任何特殊語言支持; 它只是一個約定,比如你是否使用空格或制表符進行縮進。

在我工作的一個項目中,名為* .inc.php和templates * .tpl.php的類。

如果我在大約1999年編寫PHP,這將是一個很好的慣例。 您可以根據需要命名文件,但我建議只在文件中的類名后面命名,並附加“.php”。

這更多是個人偏好,但我實際上可能會研究PSR-0標准,它為您提供了一種標准方法,可以為您的類命名和命名空間,以便以相同的格式提供與其他人代碼的更好兼容性。

在PSR-0標准中,PHP文件以類命名,並放入與命名空間相關的文件夾中。

我建議在PHP.net手冊中提到的.class.php方法中采用這種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM