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

タイトル: FuelPHP
SEOタイトル: FuelPHP (PHP フレームワーク) 完全ガイド (Legacy)

この記事の要点
  • FuelPHP は 2011 年登場の PHP フレームワーク。Dan Horrigan らが CodeIgniter から派生して立ち上げ
  • HMVC (Hierarchical Model-View-Controller) アーキテクチャを採用し、モジュール再利用性が強み
  • PHP 5.3+ 対応、軽量・高速を売りに 2010 年代前半に日本で人気
  • 現状: 開発が停滞(1.8.2 が 2018 年、以降メジャーリリースなし)
  • 2.0 計画は事実上頓挫。後継 RC 版もあるが採用は推奨されない
  • 新規開発では Laravel / Symfony 一択。FuelPHP は Legacy 保守のみ
  • 移行先: Laravel(ルーティング・ORM が近い)が最も自然

FuelPHP の概要

FuelPHP は 2011 年、CodeIgniter コア開発者の Dan HorriganPhil SturgeonJelmer SchreuderHarro Verton らが立ち上げた PHP フレームワークです。CodeIgniter の薄さと軽さを継承しつつ、HMVC アーキテクチャと PHP 5.3+ の新機能(名前空間など)を取り入れ、当時の Laravel / CakePHP / Symfony と並ぶ選択肢として日本市場でも一定のシェアを獲得しました。

歴史と現状(重要)

出来事
20111.0 リリース、HMVC 注目
20131.7、日本でブーム期
20151.8 / FuelPHP 2.0 計画発表
20181.8.2 リリース(実質最後の安定版)
2019〜主要メンテナ離脱、コミット停滞
2020 以降2.0 リリース実現せず、保守モード
2024〜新規採用は事実上ゼロ、Laravel 移行が主流

結論: 新規プロジェクトに FuelPHP を採用してはいけません。既存システムの保守・改修案件のみで関わる場面となります。

HMVC アーキテクチャ

HMVC (Hierarchical MVC) は、MVC を入れ子状に呼び出せる構造です。コントローラから別のコントローラをサブリクエストとして呼び出し、その結果(HTML 断片)を組み合わせて 1 ページを構成できます。

template->title = 'トップ';
        $this->template->content = View::forge('page/index');

        // サブコントローラを HMVC で呼出
        $this->template->sidebar = Request::forge('news/latest')->execute()->response_body();
        $this->template->footer  = Request::forge('common/footer')->execute()->response_body();
    }
}

// app/classes/controller/news.php
class Controller_News extends Controller {
    public function action_latest() {
        $news = Model_News::find('all', ['order_by' => ['created_at' => 'desc'], 'limit' => 5]);
        return View::forge('news/latest', ['news' => $news]);
    }
}

これによりサイドバー・フッターなどの共通要素をモジュール化でき、Symfony Bundle や Laravel パッケージ的な再利用性を提供しました。

インストール(参考)

# Composer で
composer create-project fuel/fuel my-app

# 旧来の oil コマンドで
curl https://get.fuelphp.com/oil | sh
oil create my-app

# 動作確認
cd my-app
php -S localhost:8080 -t public

ディレクトリ構造

fuel/
├── app/                       アプリ本体
│   ├── classes/
│   │   ├── controller/        コントローラ
│   │   ├── model/             モデル
│   │   └── view/              ビュー
│   ├── config/                設定
│   ├── lang/                  i18n
│   └── tasks/                 CLI タスク
├── core/                      フレームワーク本体
├── packages/                  パッケージ (auth, orm, parser ...)
├── modules/                   モジュール (HMVC 用)
└── public/                    ドキュメントルート
    └── index.php

ORM(Eloquent ライク)

 ['model_to' => 'Model_Post', 'key_from' => 'id', 'key_to' => 'user_id'],
    ];
}

// 利用
$user = Model_User::find(1);
$user = Model_User::find('first', ['where' => [['email', '=', 'a@example.com']]]);
$users = Model_User::find('all', ['order_by' => ['created_at' => 'desc']]);

$new = Model_User::forge(['email' => 'b@example.com', 'name' => 'B']);
$new->save();

// リレーション
foreach ($user->posts as $post) {
    echo $post->title;
}

API は Laravel Eloquent と類似ですが、メソッド名と細部の使い勝手が異なります。

Tasks(CLI バッチ)

execute();
        \Cli::write('完了', 'green');
    }
}

// 実行
// php oil refine cleanup

FuelPHP の問題点(2026 時点)

  • PHP 8.x 公式サポートなし。コミュニティパッチで動かす状態
  • セキュリティパッチが事実上止まっている
  • Composer エコシステムから孤立気味(fuel/ パッケージ自体が古い)
  • Stack Overflow / 日本語情報も 2018 年以降は希少
  • 採用情報がほぼゼロ
  • Laravel への移行コストは中規模アプリで 3〜6 か月見るのが現実的

Laravel への移行ロードマップ

  1. 業務要件と画面・API を棚卸し
  2. テストカバレッジを上げる(Migration 安全網)
  3. DB スキーマはほぼそのまま流用可(必要なら Laravel Migration 化)
  4. FuelPHP のルーティング → routes/web.php + routes/api.php
  5. Controller を Laravel 形式に書き換え(DI / FormRequest 活用)
  6. ORM: Fuel ORM → Eloquent(リレーション定義のマッピング)
  7. View: 独自テンプレ → Blade
  8. Tasks → Artisan command
  9. 段階的移行のためにリバースプロキシで URL ベース分割もあり

FAQ

Q: FuelPHP 2.0 はもう出ない?
A: 主要メンテナは公式に「リリース予定なし」とアナウンスはしていませんが、リポジトリ活動から実質開発停止です。期待しないのが安全。

Q: 既存システムを保守するうえで気を付けることは?
A: (1) PHP バージョン上げ時の互換性検証、(2) Composer 依存パッケージの脆弱性、(3) Session / Cookie の Secure / SameSite 設定、(4) HTTPS 強制リダイレクト、(5) 入力バリデーション強化。

Q: 採用案件にあるのですが学ぶ価値は?
A: 保守要員としての需要はあります。ただしLaravel に並行して習熟することを強く推奨します。