ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Yii Framework とは
Yii (イー) は PHP 向けのオープンソース MVC フレームワークです。2008 年に Qiang Xue (元 PRADO Framework 開発者) が公開し、「Yes It Is」の頭文字を取った名前です。中国・東欧圏で特に人気が高く、商用プロダクトでも採用例が多数あります。
2010 年代前半は Symfony・CodeIgniter・CakePHP・Yii が PHP フレームワークの 4 大勢力でしたが、2013 年に登場した Laravel が急速にシェアを伸ばし、Yii は次第に立ち位置を失っていきました。
バージョン履歴
| バージョン | リリース | 状況 |
|---|---|---|
| Yii 1.x | 2008-2014 | サポート終了 (2018 年に EOL) |
| Yii 2.0 | 2014-現在 | 現行主流、長期サポート (LTS) 状態 |
| Yii 3.x | 2018 開発開始 | 2026 年時点でも stable 未リリース、進捗遅延 |
Yii 2 の主な特徴
- ActiveRecord: Rails 由来の ORM パターンを採用、CRUD が直感的
- Gii: コードジェネレータ。モデル / CRUD / モジュールをワンクリック生成
- RBAC: 階層的なロール・権限管理が標準装備
- 高速: Slim と比較しても遜色ない速度を謳う (Composer 経由・低オーバーヘッド)
- Bootstrap 統合: ウィジェットで管理画面が即座に作れる (Bootstrap 3 / 4 / 5)
- jQuery 依存が強い (古さの要因にもなっている)
典型的なコード例
255],
];
}
}
// Controller
namespace app\controllers;
use yii\web\Controller;
use app\models\Post;
class PostController extends Controller {
public function actionView($id) {
$post = Post::findOne($id);
if (!$post) throw new \yii\web\NotFoundHttpException();
return $this->render('view', ['post' => $post]);
}
public function actionCreate() {
$post = new Post();
if ($post->load(\Yii::$app->request->post()) && $post->save()) {
return $this->redirect(['view', 'id' => $post->id]);
}
return $this->render('create', ['post' => $post]);
}
}
= Html::encode($post->title) ?>
= $post->body ?>
= Html::a('編集', ['update', 'id' => $post->id], ['class' => 'btn btn-primary']) ?>
Laravel との対比
| 項目 | Yii 2 | Laravel 11+ |
|---|---|---|
| ORM | ActiveRecord (Rails 系) | Eloquent (ActiveRecord 系) |
| テンプレート | 素 PHP / Twig (拡張) | Blade |
| マイグレーション | あり | あり (より洗練) |
| ルーティング | URL Manager + Controller アクション | routes/web.php に集約 |
| 認可 | RBAC 標準装備 | Gates / Policies / Spatie Permission |
| キュー | yii2-queue 拡張 | 標準装備 (Redis / SQS / DB) |
| 非同期 | 限定的 | Octane / FrankenPHP |
| ジョブ管理 | 外部依存 | Horizon |
| テスト | Codeception 依存 | PHPUnit + Pest 標準 |
| コミュニティ | 縮小傾向 | 圧倒的 (Packagist 第 1 位) |
| 採用求人 | 少ない (中露中心) | 多い (世界中) |
Yii 3 の遅延と現状
Yii 3 は 2018 年から開発が始まりましたが、「フレームワークではなく独立パッケージ集」という大胆な方針転換、コア開発者の離脱、競合の急成長などにより 2026 年現在も正式リリースに至っていません。GitHub の Yii Project Organization にはアクティブな個別パッケージはありますが、統合された Yii 3 フレームワークとしての完成度・採用例は乏しい状況です。
新規プロジェクトの選択肢
- Laravel: 学習リソース・パッケージ・SaaS 連携・採用市場すべてで圧倒的優位
- Symfony: エンタープライズ向け、長期保守 LTS、Laravel の基盤でもある
- Slim / Lumen: マイクロサービス用途
- CodeIgniter 4: 軽量、学習コスト低、レガシー寄り
- Yii 2 (非推奨): 既存案件の保守のみ、新規採用は強い理由がない限り避ける
Yii から Laravel への移行
Yii 2 のアセットを活かしつつ Laravel に段階移行する場合の典型ステップ:
- DB スキーマを共有: 同じ DB を Laravel から Eloquent でアクセス
- 新機能を Laravel 側に: API / 管理画面を順次 Laravel に切替
- セッション共有: 同一ドメインで両方稼働させる期間を設ける (Redis セッション)
- RBAC は spatie/laravel-permission へ移行
- Gii で生成したスキャフォールドは Laravel の
php artisan make:model -mc+ Filament / Nova に置換
Yii を選んでも良いケース (限定的)
- 既存 Yii 2 プロジェクトの追加機能開発 (整合性のため)
- チーム全員が Yii 経験者で Laravel 学習コストが高い
- RBAC を標準装備で使いたい (Laravel でも spatie で実現可だが追加パッケージ)
それ以外は新規採用は強く非推奨です。今後の保守性 / 採用 / エコシステムを考えると Laravel か Symfony を選ぶのが現実解です。
FAQ
Q: Yii は完全に死んだのか?
A: いいえ、Yii 2 は今でもメンテナンスされており、既存案件は十分動きます。ただし新規プロジェクトのデファクトとしての地位は失われたと考えてよいです。
Q: Yii 2 のセキュリティパッチは続く?
A: 公式は LTS として継続中。とはいえ依存パッケージ (jQuery 系等) の古さは別問題なので注視が必要です。
Q: 中国・東欧では今でも人気?
A: シェアは縮小していますが、過去案件のメンテ需要や言語ドキュメントの充実から、地域差は残っています。
Q: Phalcon・CakePHP・FuelPHP は?
A: いずれも Laravel に押されて新規シェアを失っています。新規は Laravel / Symfony の二択が現実的です。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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アノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?