Eclipse PDTでgetter/setterを自動生成
Javaであれば、Eclipseのコンテキストメニューから「GetterおよびSetterの生成」を実行できるのだが、PDTにはそのような機能はないらしい。 DTO定義する時に不便なので、Eclipseのテンプレート機能で代替する。 Eclipse PDTで、ウィンドウ→設定→PHP→エディター→テンプレートを実行。 「新規」をクリック。 「名前」、「説明」、「パターン」をそれぞれ入力してOK。 「パターン」は、例えば以下のように入力する。 public function get${PropertyName}() { return $$this->${PropertyName}; } public function set${PropertyName}($$${PropertyName}) { $$this->${PropertyName} = $$${PropertyName}; } ${cursor} エディタ上でCtrl+スペースを押下するとテンプレート・プロポーザルが表示されるので、前述のテンプレート(今回の例なら「getter/setter」)を選択する。 getterとsetterが自動入力される。 テンプレート中の”{PropertyName}”の箇所が選択された状態になるので、設定したい文字列を入力し、Enter。 すると、テンプレート中の”{PropertyName}”の箇所が自動的に入力した文字列に置換される。 ちなみに・・ 上記のテンプレート・パターンだと、”{PropertyName}”の文字列がすべて同じになってしまうため、例えば”user”と入力すると、アクセサは”getuser($user)”のように、全部小文字になる。 気持ち悪い。 ファンクション名はキャメルケースにしたいので、パターンを public function get${PropertyName}() { return $$this->${word_selection}; } public function set${PropertyName}($$${word_selection}) { $$this->${word_selection} = $$${word_selection}; } ${cursor} にしてみた。”${word_selection}”は、エディタ上で選択した文字列で自動的に置換するための定義。 エディタ上に小文字で”user”と入力し、文字列を選択。選択した状態でCtrl+スペースを押下し、テンプレートを選択する。 “{PropertyName}”の部分だけ先頭を大文字で”User”と入力すれば、ファンクション名の部分だけキャメルケースにできる。 たぶん、もっといい方法があるに違いない。 プロになるための PHPプログラミング入門 posted.