アプリケーション構造

CodeIgniter を最大限に活用するには、アプリケーションのデフォルトの構造と、アプリケーションのニーズに合わせて変更できる内容を理解する必要があります。

デフォルトディレクトリ

新規インストールには、5 つのディレクトリがあります: app/public/writable/tests/、および vendor/ または system/。これらの各ディレクトリには、非常に具体的な役割があります。

app

app ディレクトリには、すべてのアプリケーションコードが配置されます。これには、多くのアプリケーションでうまく機能するデフォルトのディレクトリ構造が付属しています。次のフォルダーが基本的な内容を構成します

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 ディレクトリはすでに名前空間が設定されているため、アプリケーションのニーズに合わせてこのディレクトリの構造を自由に修正できます。たとえば、リポジトリパターンとエンティティモデルを使用してデータを操作することに決めるかもしれません。この場合、Models ディレクトリの名前を Repositories に変更し、新しい Entities ディレクトリを追加できます。

注記

ただし、Controllers ディレクトリの名前を変更すると、コントローラーへのルーティングの自動メソッドを使用できなくなり、ルートファイルですべてのルートを定義する必要があります。

このディレクトリ内のすべてのファイルは、App 名前空間に属していますが、**app/Config/Constants.php** で変更できます。

system

注記

Composer を使用して CodeIgniter をインストールする場合、systemvendor/codeigniter4/framework/system にあります。

このディレクトリには、フレームワーク自体を構成するファイルが格納されています。アプリケーションディレクトリの使用方法には多くの柔軟性がありますが、システムディレクトリ内のファイルは変更しないでください。代わりに、クラスを拡張するか、新しいクラスを作成して、必要な機能を提供する必要があります。

このディレクトリ内のすべてのファイルは、CodeIgniter 名前空間に属しています。

public

**public** フォルダーには、Web アプリケーションのブラウザーからアクセスできる部分が含まれており、ソースコードへの直接アクセスを防ぎます。メインの **.htaccess** ファイル、**index.php**、および CSS、Javascript、画像など、追加するアプリケーションアセットが含まれています。

このフォルダーは、サイトの「Web ルート」となることを意図しており、Web サーバーはそれを指すように構成されます。

writable

このディレクトリには、アプリケーションの実行中に書き込みが必要になる可能性のあるディレクトリが保持されます。これには、キャッシュファイル、ログ、およびユーザーが送信する可能性のあるアップロードを格納するためのディレクトリが含まれます。アプリケーションが書き込む必要のある他のディレクトリはここに追加する必要があります。これにより、他の主要なディレクトリを書き込み不可にして、セキュリティ対策を強化できます。

tests

このディレクトリは、テストファイルを保持するように設定されています。_support ディレクトリには、テストの記述中に使用できるさまざまなモッククラスやその他のユーティリティが保持されます。このディレクトリを本番サーバーに転送する必要はありません。

ディレクトリの場所の変更

メインディレクトリのいずれかを再配置した場合は、**app/Config/Paths.php** 内の設定を変更できます。

アプリケーションの管理 を読んでください。