0

嗨,我需要像 Zend Studio 一样在 phpDesigner8 中制作 getter 和 setter。我的办公电脑对于 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 中找到任何宏功能。

所以就决定使用 Autohotkey。它是一个非常小的免费程序(它将满足您的旧计算机需求),具有用于构建宏的非常强大的脚本语言。

这样,此方法可以应用于您使用的任何 IDE,而不仅仅是 PhpDesigner。

我编写了以下脚本:

^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;
}

生成的代码旨在满足我的需求。我仍然必须在注释和函数调用、变量的类型和类中编写代码,以用于记录和类型提示。

您可以轻松地修改脚本,例如提示输入变量名,因此也编写了它的声明(我碰巧已经编码了所有受保护的变量)。

Internet 上有很多关于 Autohotkey 的文档、示例和帮助,您可以从以下位置开始:

于 2012-05-16T10:16:09.890 回答
0

用 phpDesigner8 制作自动 getter 和 setter 是不可能的!

于 2012-05-17T11:49:18.443 回答