CI4+Twig、楽勝のはずが500エラーで全部ハマった話(ss-twig編)
はじめに CodeIgniter4 と Twig。 この組み合わせなら、ログイン画面くらいサクッと作れるはずだった。 「Twigでレイアウト組んで、view()で返すだけでしょ?」 そう思っていた時期が、私にもありました。 AIで雛形を作る(順調) AIにお願いして以下を一式生成: Controller Routes Twigテンプレート レイアウト 構成はこんな感じ: app/Views/auth/login.twig app/Views/layouts/auth.twig app/Controllers/Auth.php app/Config/Routes.php ここまでは順調。 むしろ「もう終わったのでは?」くらいの勢い。 /login にアクセス → 500エラー ブラウザで /login を開くと… Whoops! We seem to have hit a snag. はい、出ました500。 ログを見ると… Invalid file: "auth/login.php" …いやいや。 👉 Twigで書いてるのに、PHPビュー探してる? 状況整理 ここで冷静になる: Twigファイルはある ルートも正しい Controllerも呼ばれている なのに: 👉 view() が Twig を使っていない 原因その①:view()はTwigを知らない つまりこういうこと: Twig自体は使える でも view() は PHP専用 → PHPビューを探しに行く 対策:ss-twigを導入 使ったのはこれ: kenjis/codeigniter-ss-twig これでTwigが使えるようになる…はずだった。 原因その②:twig() 関数が無い ネットの情報だと: return twig('auth/login.twig'); と書けるはずが… 👉 twig() が存在しない 調べた結果 今回のバージョンでは: bootstrap.php → 無い twig() → 無い 👉 関数ではなくクラスで使う設計だった 対策:クラスで呼び出す use Kenjis\CI4Twig\Twig; $twig = new Twig(); return $twig->render('auth/login.twig...
