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”と入力すれば、ファンクション名の部分だけキャメルケースにできる。
たぶん、もっといい方法があるに違いない。
技術評論社
売り上げランキング: 210,507