読者です 読者をやめる 読者になる 読者になる

app/webroot以下のPHPファイルからCakePHPの機能を使いたい

CakePHP

CakePHPは、app/webroot以下のファイルはそのまま表示するような実装になっていて、静的ページしかないディレクトリなんかはapp/webroot以下に配置すると楽だったりする。

特にcssやimg、jsなどもそのまま配置されているので、Dispacherを通った若干わかりにくいディレクトリ構成から解放される。

で、それを利用して「静的ページならapp/webroot以下にどんどん配置してくださいねー」とデザイナーさんと協業することがあるのだけれども、結局、静的ページでも「メニュー部分は統一したい」「ログイン情報を利用した表示をしたい」といった要求が出てくることが多い。ここを素のPHPで書くこともできるんだろうけども、せっかくCakePHP側にその機能があるので再利用したい。

というわけで、若干バッドノウハウながらも、app/webroot以下のPHPファイルからCakePHPのViewの機能を使えるようにするライブラリを書いてみた。


k1LoW/webroot_view · GitHub


使い方はREADME.mdを参考にしてもらうとして、内部のコードが本当に微妙過ぎる
app/webroot/index.phpは読み込みたいけれどもDispacherは動かしたくないので、

<?php
  $_GET['url'] = 'favicon.ico';

なんてことをしている。本当、微妙。

軽く試してみた感じでは、HtmlHelperやSessionHelperは普通に動いているっぽい。$view->element()も動く。


何か他によい解決方法があったら教えてください。