アプリケーション構造
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 をインストールする場合、system
は vendor/codeigniter4/framework/system
にあります。
このディレクトリには、フレームワーク自体を構成するファイルが格納されています。アプリケーションディレクトリの使用方法には多くの柔軟性がありますが、システムディレクトリ内のファイルは変更しないでください。代わりに、クラスを拡張するか、新しいクラスを作成して、必要な機能を提供する必要があります。
このディレクトリ内のすべてのファイルは、CodeIgniter
名前空間に属しています。
public
**public** フォルダーには、Web アプリケーションのブラウザーからアクセスできる部分が含まれており、ソースコードへの直接アクセスを防ぎます。メインの **.htaccess** ファイル、**index.php**、および CSS、Javascript、画像など、追加するアプリケーションアセットが含まれています。
このフォルダーは、サイトの「Web ルート」となることを意図しており、Web サーバーはそれを指すように構成されます。
writable
このディレクトリには、アプリケーションの実行中に書き込みが必要になる可能性のあるディレクトリが保持されます。これには、キャッシュファイル、ログ、およびユーザーが送信する可能性のあるアップロードを格納するためのディレクトリが含まれます。アプリケーションが書き込む必要のある他のディレクトリはここに追加する必要があります。これにより、他の主要なディレクトリを書き込み不可にして、セキュリティ対策を強化できます。
tests
このディレクトリは、テストファイルを保持するように設定されています。_support
ディレクトリには、テストの記述中に使用できるさまざまなモッククラスやその他のユーティリティが保持されます。このディレクトリを本番サーバーに転送する必要はありません。
ディレクトリの場所の変更
メインディレクトリのいずれかを再配置した場合は、**app/Config/Paths.php** 内の設定を変更できます。
アプリケーションの管理 を読んでください。