ひとりまとめ

もろもろのメモ

CakePHP JavaScriptの外部ファイルを使いたい

JavaScriptを外部に記述した、jsファイル。これをcakePHPでも使いたいところです。

で、普通のHTMLなら
 
という感じに、src部分に該当ファイルへのパスを書くのですが、cakePHPではそのままパスを書いても「Controllerにこういうアクションないんですけど。」と怒られてしまうのが関の山。jsファイルはその置き場やViewでの記述方法が決まっているみたいです


step1 ファイルの置き場所--------------------
/app/webroot/js以下に置くようです。


step2 Controllerに記述----------------------
jsファイルを呼び出すViewを使うControllerに
 var $helpers = array('Javascript');
という1行を追加します。JavaScript用のヘルパーを使うことにより、Viewでリンクを簡単に記述できるようになります。


step3 Viewに記述---------------------------
ctpファイルの中で実際にスクリプトを使用するよりも前に、次の1行を記述してjsファイルを読み込みます。
 <?php echo $javascript->link('test'); ?>
このとき、拡張子をつけてtest.jsと書いてもOK。書かなくてもOKでした。(表示の都合上、最初と最後の<>が全角になっています。)


なお、「JavaScript用のヘルパーなんか、使いたくないやい!」という場合は、Controllerに記述せず、直接Viewに
 
と書くことで読み込めました。(パスの書き方は、どこをDocumentRootにしてるかによって変わりそうですので注意を!)

jsファイルを置いた場所を直接指定してあげても大丈夫ってことみたいです。デザイナーさんが「PHPだなんて、ムシズがはしっちゃうわっ!絶対困っちゃうんだからっ!!」という場合は、いつものようにパスを書いて貰ってもいいのかも。