Laravelを追いかけて疲れたので、FuelPHPの源流に回帰してみる

 


1. 「最新」が「レガシー」になるスピードが早すぎる

最近のPHP開発の主流といえばLaravelだが、とにかく変化が激しすぎる。
エコシステムの強さや開発体験は圧倒的だが、その分、追従コストも高い。

サポート期間を改めて見ると、LTS(長期サポート)であっても、新機能を追いかけながら1年かけてじっくり開発していると、リリースする頃には「次のバージョンへのアップデート」が背中に迫っている。

この「常に追いかけ続けなければならない」疲労感は、長期運用を前提とするシステム屋にとっては、なかなかのストレスだ。


2. 中小企業の現場(レンタルサーバー)という制約

中小企業のシステムを請け負う場合、インフラは「使い慣れたレンタルサーバー」になることが多い。

モダンなフレームワークは、

  • 最新のPHPバージョン

  • 特定のミドルウェア

  • フロントエンドビルド環境(Viteなど)

を前提とすることが多く、共有レンタルサーバーではそれが壁になる。

「動かしたいだけなのに、環境構築で一苦労する」のは、本質的ではないと感じる。


3. そこで再発見した CodeIgniter 4(CI4)

そんな中で改めて注目したのが、CodeIgniter 4(CI4)だ。

かつて軽量フレームワークとして知られた思想を受け継ぎつつ、PHP 7.4 / 8.x 向けに再設計されている。

CI4の特徴

  • 圧倒的に軽量:フレームワーク自体のオーバーヘッドが少なく、とにかく速い

  • 「規約」よりも「自由」:書き方を強制されない

  • 長期安定性:破壊的変更が少なく安心して運用できる

  • 設置が簡単:レンタルサーバーでもそのまま動く

一言でいうと、「ちゃんと自分で組めるフレームワーク」だ。


4. テンプレートは「あえて」外付けする

CI4は標準で純粋なPHPテンプレートを使う。
それはそれで良いのだが、今回はあえて Twig を使うことにした。

  • Bladeほど多機能ではない

  • だがシンプルで壊れにくい

  • デザイナーとの分業もしやすい


5. 最小構成で動かす(CI4 + Twig)

CI4自体のインストールは非常に簡単なので割愛するが、
Twigを組み合わせる場合、少しだけ手を入れる必要がある。

ルーティング設定(app/Config/Routes.php)

$routes->get('/', 'Home::index');
$routes->get('hello', 'Hello::index');

/hello にアクセスできるようにする。


Twigサービスの登録(app/Config/Services.php)

CI4はTwigを標準では持たないため、自分でサービスとして登録する。

public static function twig($getShared = true)
{
    if ($getShared) {
        return static::getSharedInstance('twig');
    }

    return new \App\Libraries\TwigRenderer();
}

service('twig') で呼び出せるようになるのがポイント。


コントローラ

namespace App\Controllers;

class Hello extends BaseController
{
    public function index()
    {
        return service('twig')->render('hello.twig', [
            'name' => 'Twig'
        ]);
    }
}

テンプレート(app/Views/hello.twig)

<h1>Hello {{ name }}!</h1>

6. 「簡単なはず」でちょっとハマる

CI4はシンプルな分、全部が自動で揃っているわけではない。

自分の場合はこのあたりで少し詰まった:

  • Twigのサービス定義

  • パスの扱い

  • キャッシュディレクトリ

Laravelのように最初から全部揃っているわけではないが、
「必要なものを自分で差し込む」感覚がCI4の良さでもある。

簡単なフレームワークほど、“少し外したとき”に自分で考える余地がある。
その感覚は、嫌いじゃない。


まとめ

モダンを追い続けるのに疲れたなら、
一度「変わらない良さ」に立ち返るのも悪くない。

CI4は、派手さはないが、現場で長く使うにはちょうどいい距離感のフレームワークだ。

ロートル親父の分室の、ちょっとした近況報告でした。

コメント

人気の投稿