アプリケーションの管理

デフォルトでは、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** のパスを変更してください。