2013/07/17

CakePHPをガリガリ書くためのEclipse設定

Eclipseでバリバリコードを書くためには、コードヒント、コード補完はあったほうがいいと思いますが、CakePHPでは動的にクラスの読み込みを意識せずにできてしまう分、Eclipseには型が分からずヒントがうまく出ない事がよくあります。それを地味に解決しようと思います。



Controller内でModelのメソッドをコード補完する方法

Userモデルを利用する場合と仮定して、コードヒントが出るように設定してみます。設定箇所は一箇所だけで、AppController.php内の該当部分に以下を追記します。

/**
 * @property User $User
 */
class AppController extends Controller {
   ....
}

これだけでモデル内のメソッドが補完されるようになります。複数のモデルを一括で登録する場合は
/**
 * @property User $User
 * @property Item $Item
 * @property Hoge $Hoge
 * @property Fuga $Fuga
 */
class AppController extends Controller {
   ....
}

と書けばOK。アプリ全体の把握ができて必要なモデルのクラスを用意したら、できるだけ初めの方で設定したほうが効果高いと思います。
クラスの中に書いてしまうと効果は発揮されません。これでかなりハマった。

Viewの中でコード補完する方法

まずはEclipseの設定でctpファイルのコンテンツタイプをPHPに関連付ける必要があります(これをしないとPHPのコード補完が一切効かない)。

設定箇所は、「Window」→「Preferences」→「General」→「Content Types」の中から「PHP Content Type」を選び、「Add」ボタンを押して、「*.ctp」と入力して完了です。HTMLとかにも関連付けておけば、HTMLのコード補完もできます。
英語版のEclipseを使ってるので、日本語のメニュー表記がわからんです。いい加減直したい・・・。

Eclipseの下準備は以上で、ctpファイルの先頭に以下のソースを書き込みます。

<?php /* @var $this View*/?>

Viewでは、@varで型を指定します。PHP的には単なるコメントですが、$thisがViewクラスだとEclipseに教えれば、適切なコード補完をしてくれます。HtmlのHが小文字で怒られる事もなくなりますね。Viewの$thisはHtmlにFormとよく使うのでかなりありがたいです。


コードヒント専用の設定ファイルを別に作っておられる方も見受けられましたが、アプリケーションから見て無意味なファイルがプロジェクト内に存在するのもなんか違うなと思って、今回のような形になりました。

設定環境
Eclipse Version:3.7.2
PDT Version:3.0.0


0 件のコメント:

コメントを投稿