0

こんにちは私はZendStudioのようにphpDesigner8でゲッターとセッターを作成する必要があります。私のオフィスのコンピューターは、Zend 8または9にはあまり強力ではありません(これが好きな「IDEを変更する」とは書かないでください)。

誰もがそれが可能かどうか知っていますか?

class A 
{
   protected $x;
   protected $y;

   public function getX()  // I need this automatically.
   {
     //....
   }

   public function setX($x)  // I need this automatically.
   {
          //......
   }

}

ありがとう。

4

2 に答える 2

1

私はまったく同じ状況にありましたが、まだ phpDesigner でマクロ機能を見つけていません。

そこで、オートホットキーを使用することにしました。これは、マクロを作成するための非常に強力なスクリプト言語を備えた非常に小さな無料のプログラムです (古いコンピューターのニーズに適合します)。

この方法は、PhpDesigner だけでなく、使用するすべての IDE に適用できます。

次のスクリプトを作成しました。

^t::   ;invoke by copying variable name to clipboard, and pressing control+t
  fun = %ClipBoard%           ;takes the content of clipboard
  result = `r`n/**            ;`r`n = carriage return on windows
  result = %result% `r`n * @return
  result = %result% `r`n */
  result = %result% `r`npublic function get_%fun%() {
  result = %result% `r`n`treturn $this->%fun%;
  result = %result% `r`n`}`r`n
  result = %result% `r`n/** 
  result = %result% `r`n * @param %fun%
  result = %result% `r`n * @return
  result = %result% `r`n */ 
  result = %result% `r`npublic function &set_%fun%($%fun%) {
  result = %result% `r`n`t$this->%fun% = $%fun%;
  result = %result% `r`n`treturn $this;
  result = %result% `r`n`}
  result = %result% `r`n
  ClipBoard = %result%        ;stores result on clipboard
  Send {down}{home}           ;moves to prevent overwriting selected text
  Send ^v                     ;writes result to text editor
  Send {shiftdown}{controldown}{f1}{controlup}{shiftup} ;PHPDesigner format file
  Sleep 50                    ;waits for paste to finish                    
  ClipBoard = %fun%           ;restores previous clipboard          
  VarSetCapacity(fun, 0)      ;empties variable     
Return

次のように動作します: 最初にプロパティ定義を探します (または書き留めます):

protected $table_name_a;

次に、「table_name_a」を選択してクリップボードにコピーし (control+c)、control+t を押します。そうするとき、それは書き留めます(そして現在のファイルのコードをフォーマットするためにControl + Shitf + F1を呼び出します):

/**
 * @return 
 */
public function get_table_name_a() {
    return $this->table_name_a;
}

/**
 * @param table_name_a 
 * @return 
 */
public function &set_table_name_a($table_name_a) {
    $this->table_name_a = $table_name_a;
    return $this;
}

生成されたコードは、私のニーズに合わせて設計されています。文書化と型ヒントのために、コメントと関数呼び出し、変数の型とクラス内にコーディングする必要があります。

たとえば、変数名を要求するなど、スクリプトを簡単に変更できるため、その宣言も記述されます (たまたま、すべての保護された変数が既にコーディングされています)。

インターネットには、オートホットキーに関するドキュメント、例、ヘルプがたくさんあります。次の場所から開始できます。

于 2012-05-16T10:16:09.890 に答える
0

phpDesigner8 で自動 getter と setter を作成することは不可能です!

于 2012-05-17T11:49:18.443 に答える