應用程式結構

為了可以充分的利用 CodeIgniter,你需要了解應用程式的結構,在預設的情況下,你可以為了滿足你的應用程式的需求而去更改內容。

預設資料夾

新安裝的應用程式中共有六個資料夾:/app/system/public/writable/tests 也可能會有 /docs 。 每一個資料夾都扮演著非常重要的角色。

app

app 資料夾儲存著你所有應用程式的代碼。它擁有一個預設的目錄結構,適用於許多的應用程式。以下的資料夾構成基本內容:

/app
        /Config         儲存設定檔案
        /Controllers    控制器負責程式的運行流程
        /Database       儲存資料庫遷移和資料填充檔案
        /Filters        儲存可以在 Controllers 前後運行的類別
        /Helpers        Helpers 儲存收集所有的獨立功能
        /Language       支持多語言的功能,讀取了這裡的多語言字串
        /Libraries      一些不屬於其他分類的實用類別
        /Models         Models 和資料庫一起工作,描繪出了業務的實體樣貌。
        /ThirdParty     可以用在應用程式中的第三方庫
        /Views          Views 製作出可在客戶端顯現的 HTML。

因為 app 資料夾已經是一個命名空間, 因此你可以任意修改此目錄的結構以滿足你應用程式的需要。例如,你可能決定開始使用存儲庫模式和實體模型來處理資料。在這種情況下,你可以將 Models 資料夾重新命名成 Repositories 然後新增一個 Entities 資料夾。

備註

如果你重新命名了 Controllers 資料夾,你會因此無法自動配對至控制器,你必須自行在所有的路由檔案中定義路由。

此資料夾中的所有檔案都位於 App 命名空間,所以你可以在 app/Config/Constants.php 中去任意更改。

system

這個資料夾擁有構成框架的檔案本身。 雖然你在使用應用程式資料夾方面具有很大的靈活性,但系統資料夾中的檔案永遠不應該被修改。相反的,你應該擴充類別或創建新的類別,以提供所需的相應功能。

這個資料夾中的所有檔案,都位於 CodeIgniter 命名空間下。

public

public 資料夾擁有你的 web 應用中,可以被瀏覽器訪問的部分,這可防止你的原始碼被直接訪問。它包含了主要的 .htaccess 檔案、index.php 和任何你加入應用程式的資源,例如 CSS 、 javascript 或是圖片。

這個資料夾代表了你的網站的「web 根目錄」,你的 web 伺服器將會被設定導向此處。

writable

這個資料夾擁有在整個應用程式運行中可能需要被寫入的所有資料夾。包括用於儲存快取檔案、日誌和任何可能來自用戶發送資料的資料夾。你可以在此處添加應用程式需要寫入的任何其他資料夾。作為一個額外確保安全的手段,這允許你可以保持其他的主目錄為不可寫入的狀態。

tests

此資料夾被設定用來儲存你的測試檔案。_support 資料夾包含 Mock 類別和其他在編寫測試時,各種可以使用的實用程式。這個資料夾不需要被提交到你的生產環境中。

docs

這個資料夾擁有一份 CodeIgniter4 使用手冊的本地副本。

Modifying Directory Locations

如果你需要重新設定任何主資料夾的位置,你可以在 app/Config/Paths 中修改設定。

請閱讀 管理你的應用程式