CakePHPでjsファイルをPHPで生成したい
- 2009年 8月 31日
- カテゴリー : technology
- コメントを書く
最近、業務でCakePHPをいじっているのですが、jsファイルをPHPで生成したかったので、その方法を下記します。
一般的には拡張子をphpのままでjavascriptの内容を吐き出すという方法(下記URL参照)があります。
http://hal-lab.cocolog-nifty.com/blog/2009/03/cssjsphp-bfe1.html
しかしながら、CakePHPのjavascriptヘルパーでそのファイルを指定しようとすると、拡張子がjsに自動変換されてしまいます。
≪テンプレート≫
<?php echo $javascript->link('hoge.php', false);?>
↓
<script type="text/javascript" src="/js/hoge.php.js"></script>
どう解決しようか、javascriptヘルパーを継承したクラスでも作ってオーバーライドでもしようかと思いましたが、CakePHPのバージョンアップ等を考えると、スマートじゃないと・・・
そこで、下記のようにroutes.phpで、jsファイルパスでアクセスしたら、無理やりコントローラに渡す方法にしてみました。
≪routes.php≫
Router::connect('/js/hoge.js', array('controller' => 'hogecons', 'action' => 'hoge'));
≪controller.php≫
class HogeconsController extends AppController
{
var function ui_config()
{
$this->set('hoge', $hoge);
$this->layout = 'ajax';
}
}
設計思想に反しているかもしれませんが、とりあえず動いたので良しとします。

コメントはまだありません。