Сделать функцию получения и установки в phpDesigner8 - PullRequest
0 голосов
/ 22 марта 2012

Привет мне нужно сделать геттеры и сеттеры в phpDesigner8, как в Zend Studio.Мой офисный компьютер не очень мощный для Zend 8 или 9. (Пожалуйста, не пишите «смените IDE», мне нравится этот).

Кто-нибудь знает, возможно это или нет?

Спасибо.

Ответы [ 2 ]

1 голос
/ 16 мая 2012

Я был точно в такой же ситуации и до сих пор не нашел какой-либо макрофункции в 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;
}

Созданный код разработан в соответствии с моими потребностями. Мне все еще приходится кодировать внутри комментариев и вызовов функций, типов и классов для переменных, для документирования и подсказок типов.

Вы можете легко изменить скрипт, например, запрашивая имя переменной, поэтому его объявление также записывается (у меня все кодированные переменные уже закодированы).

Интернет полон документации, примеров и помощи по Autohotkey, вы можете начать с:

0 голосов
/ 17 мая 2012

Невозможно создавать автоматические геттеры и сеттеры с phpDesigner8!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...