この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:atom
更新日時:2026-06-11 07:07:02

タイトル: CodeIgniter
SEOタイトル: CodeIgniter 完全ガイド|CI3 / CI4 の違い・新規採用 vs 保守判断

この記事の要点
  • CodeIgniter は 2006 年に EllisLab がリリースした軽量 PHP MVC フレームワーク
  • 2019 年に BCIT (British Columbia Institute of Technology) に移管 → CodeIgniter 4 系へ刷新
  • 現行は CodeIgniter 4 (4.x)。PSR-4 オートロード / 名前空間 / CLI / Migrations / Shield 認証
  • Laravel より軽量・薄い。学習コスト低、レンタルサーバでも動く。だがエコシステムは Laravel に大差
  • CI3 は EOL(脆弱性修正のみ)→ CI4 への移行か、別フレームワーク(Laravel/Symfony)への乗換を検討

CodeIgniter とは

CodeIgniter は 2006 年に米 EllisLab 社がリリースした PHP の MVC フレームワーク。「規約より設定の薄さ」「レンタルサーバでも動く」「学習コストが低い」を売りに、日本でも 2010 年代前半まで広く使われました。

その後 EllisLab が開発から離れ、2019 年にカナダの BCIT (British Columbia Institute of Technology) に正式移管。これに伴いCodeIgniter 4 がフルリライトでリリースされ、現代の PHP(名前空間 / PSR-4 / Composer)に追従しました。

バージョン履歴

バージョンリリースPHP 要件状態
CI 1.x2006PHP 4EOL
CI 2.x2011PHP 5.1+EOL
CI 3.x2015PHP 5.6+セキュリティパッチのみ
CI 4.x2020PHP 7.4 / 8.x現行・推奨

「CodeIgniter 5」のロードマップは 2026 年時点では具体化していません。当面はCI 4 系の継続改善路線です。

CodeIgniter 4 のインストール

# Composer でプロジェクト作成
composer create-project codeigniter4/appstarter my-app
cd my-app

# 起動
php spark serve
# → http://localhost:8080

# または手動 DL(Composer 不要)
# https://codeigniter.com/download → ZIP 展開

# 構成
# app/        : Controllers / Models / Views / Config
# public/     : フロントコントローラ index.php
# system/     : フレームワーク本体(書き換え禁止)
# writable/   : cache / logs / session / uploads
# .env        : 環境変数

Routing

// app/Config/Routes.php
$routes->get('/',         'Home::index');
$routes->get('/users',    'UserController::list');
$routes->get('/users/(:num)', 'UserController::show/$1');
$routes->post('/users',   'UserController::create');

// グループ + フィルタ
$routes->group('api/v1', ['filter' => 'auth'], function ($routes) {
    $routes->resource('posts');   // RESTful 7 ルート自動生成
});

// 確認
// php spark routes

Controller

findAll();
        return view('users/list', ['users' => $users]);
    }

    public function show($id)
    {
        $userModel = new \App\Models\UserModel();
        $user = $userModel->find($id);
        if (!$user) {
            throw new \CodeIgniter\Exceptions\PageNotFoundException();
        }
        return $this->response->setJSON($user);
    }
}

Model(クエリビルダ)

 'required|max_length[100]',
        'email' => 'required|valid_email|is_unique[users.email]',
    ];
}

// 使う
$users = (new UserModel())->where('role', 'admin')->orderBy('id', 'DESC')->findAll(10);
(new UserModel())->insert(['name' => 'taro', 'email' => 't@example.com']);

Migrations

# マイグレーション作成
php spark make:migration CreateUsersTable

# 実行
php spark migrate

# ロールバック
php spark migrate:rollback

# 状態確認
php spark migrate:status
forge->addField([
            'id'         => ['type' => 'INT', 'auto_increment' => true],
            'name'       => ['type' => 'VARCHAR', 'constraint' => 100],
            'email'      => ['type' => 'VARCHAR', 'constraint' => 255],
            'created_at' => ['type' => 'DATETIME', 'null' => true],
            'updated_at' => ['type' => 'DATETIME', 'null' => true],
        ]);
        $this->forge->addPrimaryKey('id');
        $this->forge->addUniqueKey('email');
        $this->forge->createTable('users');
    }

    public function down()
    {
        $this->forge->dropTable('users');
    }
}

Shield(公式認証パッケージ)

CI4.3 以降の公式認証ライブラリ。CI 単体では認証機能が薄かった弱点を解消:

composer require codeigniter4/shield
php spark shield:setup
php spark migrate --all

# 機能
# - パスワード認証 / トークン認証 / JWT
# - メール認証
# - 2 要素認証 (TOTP)
# - グループ / パーミッション
# - 自動ログインクッキー(Remember Me)

CLI(Spark)

php spark serve              # 開発サーバ
php spark routes             # ルート一覧
php spark make:controller    # 雛形生成
php spark make:model
php spark make:migration
php spark migrate
php spark db:seed UserSeeder
php spark cache:clear
php spark filter:check get / # フィルタ確認

Laravel との比較

項目CodeIgniter 4Laravel 11+
学習コスト低い(薄い)中〜高(規約多い)
パフォーマンス軽量・速い機能多く重め(Octane で改善)
ORM独自 Model / Query BuilderEloquent(強力)
テンプレView(PHP直書き)+ ParserBlade
Job キュー非搭載(自前 or 別ライブラリ)Queue / Horizon 標準
API 開発RESTful Resource + ShieldSanctum / Passport
エコシステム小規模大規模・パッケージ豊富
レンタルサーバ動くSSH/Composer 必須
日本語情報CI3 時代は豊富 / CI4 は少非常に豊富

CI3 → CI4 移行

同じ「CodeIgniter」ですが CI4 は事実上の別フレームワーク。書き直しに近い作業になります:

  • 名前空間必須 (CI3 はグローバル関数中心)
  • Controller は extends Controller でリクエスト / レスポンスオブジェクト
  • Model にバリデーション / イベント / Entity 統合
  • ヘルパー関数も helper('text') で明示ロード
  • 設定ファイルは PHP クラス + .env
  • ライブラリ移植は実質書き直し

採用 vs 保守の判断

状況推奨
新規プロジェクト(中〜大)Laravel / Symfony を強く推奨
新規プロジェクト(小規模 / 学習)CI4 もアリ。Slim も検討
既存 CI3 で動いている運用機能凍結なら現状維持 + セキュリティパッチ追従
既存 CI3 で開発継続CI4 移行 or Laravel リライトを計画
レンタルサーバ縛りCI4 が現実解

FAQ

Q: CI3 はまだ使える?
A: 動きはしますが「セキュリティパッチのみ」状態で新規採用は非推奨。PHP 8 互換性も限定的です。

Q: CI4 でジョブキューはどうする?
A: 公式 codeigniter4/queue パッケージ(DB / Redis / Beanstalkd 対応)が登場しました。それ以前はTasks (cron) + 自前 worker で実装します。

Q: 日本語ドキュメントは?
A: CI3 までは「コードイグナイター ユーザガイド」が活発でしたが、CI4 の翻訳は遅れ気味。公式英語ドキュメントを読むのが早道です。

Q: Laravel に移行するメリットは?
A: エコシステム (Forge / Vapor / Nova / Telescope)、ジョブキュー / WebSocket / Queue Horizon、Laravel Sail (Docker)、求人市場の厚みなど。「人を集めやすい」のは Laravel です。