アプリケーションの管理
デフォルトでは、CodeIgniter を使用して **app** ディレクトリに構築する1つのアプリケーションのみを管理することを意図していると想定されています。ただし、単一の CodeIgniter インストールを共有する複数のアプリケーションセットを持つこと、さらにはアプリケーションディレクトリの名前を変更したり、再配置したりすることも可能です。
重要
CodeIgniter v4.1.9 以前をインストールしていて、`/composer.json` の `autoload.psr-4` に以下のように `App\\` および `Config\\` 名前空間がある場合は、これらの行を削除し、`composer dump-autoload` を実行する必要があります。
{
...
"autoload": {
"psr-4": {
"App\\": "app", <-- Remove this line
"Config\\": "app/Config" <-- Remove this line
}
},
...
}
アプリケーションディレクトリの名称変更または再配置
アプリケーションディレクトリの名前を変更したり、プロジェクトルート以外のサーバー上の別の場所に移動したりする場合は、メインの **app/Config/Paths.php** を開き、`$appDirectory` 変数(44行目付近)に*サーバーのフルパス*を設定します。
<?php
namespace Config;
class Paths
{
// ...
public $appDirectory = '/path/to/your/app';
// ...
}
**Paths** 設定ファイルを見つけられるように、プロジェクトルートにある2つの追加ファイルを修正する必要があります。
**/spark** はコマンドラインアプリを実行します。
<?php require FCPATH . '../app/Config/Paths.php'; // ^^^ Change this line if you move your application folder
**/public/index.php** は Web アプリのフロントコントローラーです。
<?php require FCPATH . '../app/Config/Paths.php'; // ^^^ Change this line if you move your application folder
1つの CodeIgniter インストールで複数のアプリケーションを実行する
共通の CodeIgniter フレームワークインストールを共有して、いくつかの異なるアプリケーションを管理する場合は、アプリケーションディレクトリ内にあるすべてのディレクトリを独自の(サブ)ディレクトリに配置するだけです。
たとえば、**foo** と **bar** という名前の2つのアプリケーションを作成するとします。アプリケーションプロジェクトディレクトリを次のように構成できます。
foo/
app/
public/
tests/
writable/
env
phpunit.xml.dist
spark
bar/
app/
public/
tests/
writable/
env
phpunit.xml.dist
spark
vendor/
autoload.php
codeigniter4/framework/
composer.json
composer.lock
注記
Zip ファイルから CodeIgniter をインストールする場合、ディレクトリ構造は次のようになります。
foo/
bar/
codeigniter4/system/
これには、**foo** と **bar** の2つのアプリがあり、どちらも標準のアプリケーションディレクトリと **public** フォルダーがあり、共通の **codeigniter4/framework** を共有しています。
それぞれの **app/Config/Paths.php** にある `$systemDirectory` 変数は、共有の共通 **codeigniter4/framework** フォルダーを参照するように設定されます。
<?php
namespace Config;
class Paths
{
// ...
public $systemDirectory = __DIR__ . '/../../../vendor/codeigniter4/framework/system';
// ...
}
注記
Zip ファイルから CodeIgniter をインストールする場合、`$systemDirectory` は `__DIR__ . '/../../../codeigniter4/system'` になります。
それぞれの **app/Config/Constants.php** にある `COMPOSER_PATH` 定数を変更します。
<?php
defined('COMPOSER_PATH') || define('COMPOSER_PATH', ROOTPATH . '../vendor/autoload.php');
アプリケーションディレクトリを変更する場合のみ、アプリケーションディレクトリの名称変更または再配置 を参照して、**index.php** と **spark** のパスを変更してください。