簡體   English   中英

OOP PHP 項目中的 Includes vs Classes 文件夾有什么區別?

[英]What is the difference between Includes vs Classes folder in OOP PHP project?

我正在嘗試使用面向 object 的編程和 smarty 模板創建 php 站點。

只是通過書來制作我應該如何構建結構?

我見過有些人制作 Includes 文件夾和 Classes 文件夾,有些人將 Classes 放在 Includes 文件夾中,哪種方式是正確的? object 面向編程的包含文件夾是什么?

您應該使用自動加載來加載您的類。

此外,您的自動裝載機應符合PSR-0標准(由 PHP 標准工作組編寫)

https://gist.github.com/221634上提供了符合 PSR-0 的自動加載器示例

沒有正確的方法,也沒有教科書的標准。 PHP 項目中的文件夾結構由您自行組織,但您喜歡。 不同的人 go 有不同的約定。

也許有些人稱它為includes ,因為它包含通常包含在大多數其他主要腳本中的文件,有些人稱它為classes ,因為它包含 class 文件。 由於incliudes文件是包含文件,因此可能它們使classes成為包含的子文件夾。 但這一切都完全是主觀的和優先的; 這絕不是一個標准。

據說沒有標准文件夾,但includes/是相當主流的,有些人可能會認為這是事實上的標准。 這真的取決於你。

只有一條規則:它必須有意義。 嚴重地。 代碼必須是可讀和可維護的。 最頂層文件夾的名稱與此無關。 如何在該文件夾下組織課程更為重要。 作為個人喜好,我會使用“類”或“模型”,因為這就是文件的內容。 “包含”讓我想起了程序化編程時代。

但是,您的應用程序應該遵循的更重要的原則是 MVC(模型-視圖-控制器)架構。 我建議您閱讀該主題。 還有幾個很好的框架,這樣您就不需要編寫樣板代碼。

框架的問題是,您通常幾乎沒有選擇命名文件夾的選擇,因為它們已經堅信“正確”的做事方式。 這也使您提出的命名問題不太相關。

對於 MVC 應用程序,您的類的作用通常只是封裝您的應用程序的數據 model。 這就是為什么我經常使用“模型”作為文件夾的名稱,而不是類或包含。

在為 OO PHP 構建包含時,我會從 Java 中獲得靈感。 對於依賴於另一個 class 的每個 class,請在文件頂部使用以下語句:

require_once 'classFolder/SomeClass.php'

該語句將檢查文件是否已被包含,如果是,則不再包含(要求)它。 如果找不到所需的文件,則會導致致命的 E_COMPILE_ERROR 級別錯誤。 換句話說,它會停止腳本,而 include_once() 只會發出一個警告 (E_WARNING) 允許腳本繼續。

使用這種結構意味着所有 class 文件都指定了所有必需的包含,因此會有一些重復,例如某些類可能需要同一個文件。 然而,由於 require_once 的工作方式,這帶來的開銷很小,並且使代碼對更改非常有彈性。

希望這可以幫助。

暫無
暫無

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

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