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プログラミング入門
星野 香保子
技術評論社
売り上げランキング: 210,507
This entry was posted in PHP. Bookmark the permalink. Both comments and trackbacks are currently closed.

関連記事