Ext JS に関しては,新しい記事は Sunvisor Lab. ExtJS 別館 にあります。そちらもよろしくお願いいたします。

Eclipse PDTでのCakePHP開発時のコード補完に関する情報

EclipseとPDTで開発をしていると便利なのがコード補完です。この機能がないと開発の効率がすごく落ちますね。ここではCakePHPの開発において,コード補完をちゃんと行えるようにする設定について書きます。

基本,cakeフォルダをIncludeする

cakeフォルダをプロジェクトとして,appフォルダのプロジェクトのインクルードパスにcakeプロジェクトを追加します。これでCakePHPのオブジェクトに関するコード補完が実現します。

Viewの.ctp編集時にコード補完を使う

この件に関する参考サイト:Code completion in views with Eclipse PDT

Eclipseのコード補完はめっちゃ便利です。ですがビューのctpファイルを編集中にヘルパーのコード補完ができません。どこかのファイル で$htmlとかの変数を宣言してやればコード補完できるのじゃないかと思いましたが,やはりそうでした。上記参考サイトに書いてありました。プロジェク トの中の適当な場所(場所はどこでも良い)に適当なphpファイルを作り,次のコードを流し込んで,保存します。

<?php 
// stop page loading 
exit; 
 
// reference helpers so Eclipse provides code completion 
$ajax = new AjaxHelper(); 
$cache = new CacheHelper(); 
$form = new FormHelper(); 
$html = new HtmlHelper(); 
$javascript = new JavascriptHelper(); 
$number = new NumberHelper(); 
$session = new SessionHelper(); 
$text = new TextHelper(); 
$time = new TimeHelper(); 
?>

これだけで,Viewの.thtmlでもコード補完が使えるようになります。

コントローラからモデルのメンバを補完する

コントローラでコードを書いているときに,モデルを使うことがありますね。

$this->Employee->save($this->data)

こんな風に。ところが,モデルのメンバは補完されません。これを補完するのは至難の業かと思われましたが,次の方法を取るとなんとかできるようになります。もっと簡単な方法があれば,コメントやトラバでツッコミお願いします。

モデルを使用するメソッドの中で(先頭あたり?)次のように記述します。

function record(){
  $model =& $this->Employee;
  /* @var $model Employee */
    :
 
 
  $model->save($this->data);
}

このようにモデルメンバを変数に代入して使用します。変数の型をPDTに教えるために3行目のコメントを書きます。すると,$modelはEmployeeクラスであるとPDTが判断して,メンバをリストしてくれるようになります。

トラックバック


URL から "-MoIyadayo" を削除してトラックバックを送信してください。
トラックバックは承認後に表示されます。

controllerでの補完

app_controller.phpに
/**
 * @var Hoge
 */
  var $Hoge;
とすれば、Hogeモデルのコードインテリジェンスが使えるようになるかと思います(PDTで確認しました)。

 それは便利ですね。情報ありがとうございます。 m(_

 それは便利ですね。情報ありがとうございます。 m(_ _)m