タイトル: Yii
本稿はYii (Yii Framework)に関する記事です。
Yiiとは?
Yiiは、PHP 製のフルスタックWebアプリケーションフレームワークです。「Yes, it is!」の頭文字に由来します。パフォーマンス重視・高機能な ActiveRecord・Gii によるコード自動生成が特徴で、エンタープライズから小〜中規模 Web アプリまで幅広く使われてきました。
現在の主流は Yii 2 です。次世代の Yii 3 はモジュール集として開発が進められています。
Yiiの主な特徴
- 高速 — レイジーローディング・キャッシュ前提で軽量に設計
- Gii によるスキャフォールド — モデル・CRUD・コントローラの自動生成
- ActiveRecord — テーブル=クラスでデータベースを扱う
- Widget・テーマ機能 — UIの再利用が容易
- RBAC — ロールベースアクセス制御を標準サポート
- i18n / l10n — 多言語化が標準対応
- テスト統合 — Codeception を使った機能・受入テスト
Yii 2 のプロジェクト構成 (basicテンプレート)
| ディレクトリ | 役割 |
|---|---|
config/ | アプリ設定 (web.php / db.php 等) |
controllers/ | コントローラ |
models/ | ActiveRecord モデル・フォームモデル |
views/ | ビュー (PHPテンプレート) |
web/ | 公開ディレクトリ (index.php・assets) |
runtime/ | ログ・キャッシュ等の実行時生成物 |
vendor/ | Composer 依存 |
典型的なコード例 (Yii 2)
|
// app/controllers/UserController.php |
主なPHPフレームワークとの比較
| フレームワーク | 立ち位置 | 状況 |
|---|---|---|
| Yii | フルスタック。コード自動生成・ActiveRecord重視 | Yii 2 が現役、Yii 3 開発中 |
| Laravel | フルスタック。エコシステム最大級 | 現役・主流 |
| Symfony | 大規模向け・コンポーネント集 | 現役・主流 |
| CakePHP | フルスタック。Rails系 | 現役 |
| Silex | マイクロ | 2018年EOL |
インストール (Yii 2 basic)
|
$ composer create-project --prefer-dist yiisoft/yii2-app-basic myapp |
運用上の注意
- PHPバージョン対応に注意 (Yii 2 は長期間サポートされているが、PHP 8 系での挙動確認は必要)
- 本番では debug / gii モジュールを無効化 (開発時のみ有効)
- セッション・キャッシュは Redis / Memcached を検討
- 大規模化する場合は advanced テンプレートでフロント/バック分割
関連
- 親カテゴリ: フレームワーク (PHP)
- PHP本体: PHP
- 類似マイクロFW: Silex