應(yīng)用結(jié)構(gòu)?
為了可以充分利用 CodeIgniter,你需要了解應(yīng)用程序的結(jié)構(gòu),默認(rèn)情況下,你可以更改內(nèi)容以滿足你的應(yīng)用程序的需求。
默認(rèn)目錄?
新安裝的應(yīng)用程序中有六個(gè)目錄:/app
,/system
,/public
, /writable
,/tests
和 /docs
。這些目錄中的每一個(gè)都有一個(gè)非常具體的使用規(guī)范。
app?
app
目錄是你所有應(yīng)用程序代碼所在的目錄。它帶有一個(gè)默認(rèn)的目錄結(jié)構(gòu),適用于許多應(yīng)用程序。以下文件夾構(gòu)成基本內(nèi)容:
/app
/Config Stores the configuration files
/Controllers Controllers determine the program flow
/Database Stores the database migrations and seeds files
/Filters Stores filter classes that can run before and after controller
/Helpers Helpers store collections of standalone functions
/Language Multiple language support reads the language strings from here
/Libraries Useful classes that don't fit in another category
/Models Models work with the database to represent the business entities.
/ThirdParty ThirdParty libraries that can be used in application
/Views Views make up the HTML that is displayed to the client.
由于app目錄已經(jīng)是命名空間,因此你可以隨意修改此目錄的結(jié)構(gòu)以滿足應(yīng)用程序的需要。例如,你可能決定開始使用存儲(chǔ)庫(kù)模式和實(shí)體模型來處理數(shù)據(jù)。在這種情況下,你可以將Models目錄重命名為 Repositories,并添加新Entities目錄。
注解
如果重命名 Controllers
目錄,則無法使用路由到控制器的自動(dòng)方法,并且需要在你的路由文件中定義所有路由。
此目錄中的所有文件都位于 App
命名空間下,你可以在 app/Config/Constants.php 文件中自由更改 。
system?
該目錄存儲(chǔ)構(gòu)成框架的文件本身。雖然你在使用應(yīng)用程序目錄方面具有很大的靈活性,但系統(tǒng)目錄中的文件永遠(yuǎn)不應(yīng)該被修改。相反,你應(yīng)該擴(kuò)展類或創(chuàng)建新類,以提供所需的相應(yīng)功能。
此目錄中的所有文件都位于 CodeIgniter
命名空間下。
public?
public 文件夾包含 Web應(yīng)用程序的瀏覽器可以直接訪問的地址,防止源代碼的直接訪問。它包含主要的 .htaccess 文件,index.php 以及其它你想要添加的樣式文件地址,比如CSS,javascript或圖像。
這個(gè)文件夾將成為你站點(diǎn)的”Web根目錄”,并且你的Web服務(wù)器配置將指向它。
writable?
此目錄包含在應(yīng)用程序生命周期中可能需要寫入的所有目錄。包括用于存儲(chǔ)緩存文件,日志和任何用戶可能發(fā)送使用的目錄。你可以在此處添加應(yīng)用程序需要寫入的任何其他目錄。這允許你將其他主目錄保持為不可寫,作為附加的安全措施。
tests?
此目錄設(shè)置為測(cè)試文件的存儲(chǔ)地址。 _support
目錄包含各種模擬類和其他在編寫測(cè)試時(shí)可以使用的實(shí)用程序。該目錄請(qǐng)?jiān)谏a(chǎn)環(huán)境中忽略提交/傳輸?shù)缴a(chǎn)環(huán)境中。
docs?
如果此目錄是你項(xiàng)目中的一部分,那么此目錄包含 CodeIgniter4 用戶指南的本地副本。