ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
CodeIgniter とは
CodeIgniter は 2006 年に米 EllisLab 社がリリースした PHP の MVC フレームワーク。「規約より設定の薄さ」「レンタルサーバでも動く」「学習コストが低い」を売りに、日本でも 2010 年代前半まで広く使われました。
その後 EllisLab が開発から離れ、2019 年にカナダの BCIT (British Columbia Institute of Technology) に正式移管。これに伴いCodeIgniter 4 がフルリライトでリリースされ、現代の PHP(名前空間 / PSR-4 / Composer)に追従しました。
バージョン履歴
| バージョン | リリース | PHP 要件 | 状態 |
|---|---|---|---|
| CI 1.x | 2006 | PHP 4 | EOL |
| CI 2.x | 2011 | PHP 5.1+ | EOL |
| CI 3.x | 2015 | PHP 5.6+ | セキュリティパッチのみ |
| CI 4.x | 2020 | PHP 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:statusforge->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 4 | Laravel 11+ |
|---|---|---|
| 学習コスト | 低い(薄い) | 中〜高(規約多い) |
| パフォーマンス | 軽量・速い | 機能多く重め(Octane で改善) |
| ORM | 独自 Model / Query Builder | Eloquent(強力) |
| テンプレ | View(PHP直書き)+ Parser | Blade |
| Job キュー | 非搭載(自前 or 別ライブラリ) | Queue / Horizon 標準 |
| API 開発 | RESTful Resource + Shield | Sanctum / 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 です。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- SEO タイトル設計とキーワード配置完全ガイド (CTR / LLMO 対応) 2026-06-10 18:13:56
- Vue.js v-bind 完全ガイド (属性 / クラス / スタイル / Composition API) 2026-06-10 18:13:56
- Twitter (X) プラットフォーム完全ガイド 2026 (API / Premium / 競合) 2026-06-10 18:13:56
- PHP 変数スコープ完全ガイド (global / static / use / Arrow Function) 2026-06-10 18:13:56
- jQuery .height() 完全ガイド (innerHeight / outerHeight / box-sizing) 2026-06-10 18:13:56
- WordPress 主要独自関数完全ガイド (Loop / Enqueue / Hook / Conditional Tag) 2026-06-10 18:13:56
- jQuery 要素・値の削除完全ガイド (remove / detach / empty / val) 2026-06-10 18:13:56
- PHP コメント完全ガイド (// / # / /* */ / PHPDoc) 2026-06-10 18:13:56
- PHP 改行出力 (\n / PHP_EOL / nl2br) 完全ガイド 2026-06-10 18:13:56
- JavaScript 確認ダイアログ完全ガイド (confirm / alert / prompt / dialog) 2026-06-10 18:13:56
- UE5 スクリーンショット保存 (Scene Capture) 完全ガイド 2026-06-10 18:12:53
- UE5 Nav Mesh Bounds Volume 完全ガイド 2026-06-10 18:12:53
- EJS テンプレートの共通化 (include) 完全ガイド 2026-06-10 18:12:53
- UE5 カメラ傾き角度制限完全ガイド (Pitch Min/Max) 2026-06-10 18:12:53
- SQLite 完全ガイド (組み込み RDBMS) 2026-06-10 18:12:53
コメントを削除してもよろしいでしょうか?