嗨,我需要在phpDesigner8中制作getter和setter,就像在Zend Studio中一样。我的办公室电脑对于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.
{
//......
}
}
谢谢。
我也处于同样的情况,仍然没有在phpDesigner中找到任何宏功能。
所以决定使用自动热键。这是一个非常小的免费程序(它将满足您的旧计算机需求),具有非常强大的脚本语言来构建宏。
- http://www.autohotkey.com/download
这样,这种方法可以应用于您使用的任何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;
}
生成的代码是为满足我的需要而设计的。我仍然需要在注释和函数调用、变量的类型和类中进行编码,以便进行文档记录和类型提示。
您可以很容易地修改脚本,例如,提示输入变量名,这样它的声明也会被编写(我碰巧已经对所有受保护的变量进行了编码)。
互联网上充满了关于自动热键的文档、示例和帮助,您可以从以下位置开始:
- http://www.autohotkey.com/docs/Scripts.htm
使用phpDesigner8不可能制作自动getter和setter!