2016-06-01 3 views
1

Как в теме, я хочу реорганизовать локальную переменную в поле класса.Локальная переменная refpct phpStorm в поле класса

Я думал о двух подходах:

A. Быстро и просто:
Я хочу, чтобы реорганизовать имя переменной из $var в $this->var.

B. Расширенная версия:

от:

class x { 
    function y() { 
     $var = new targetClass; 
    } 
} 

к:

class x { 
    /** @var targetClass $var */ // version C, optional 
    (public|protected|private) $var; 
    function y() { 
     $this->var = new targetClass; 
    } 
} 

не можете сделать это, когда я пытаюсь реорганизовать $var, просто рефакторинга до $this->var, я получаю сообщение:

Поставлен недопустимый идентификатор

Определение $this->var первый не помогает.

Только обходное решение, которое я нашел, - это ввести $this->var, разделить фокус на переменную рефакторинга, напечатать что угодно и удалить его. Затем PhpStorm изменен, а переменная изменена. Это простой подход к грязным покрытиям A.

+0

То, что «Рефакторинг | Переименовать» может изменять только имя переменной .., но не его характер. Это то, что вы пытаетесь сделать (изменение локального var в поле класса). Вам просто нужно использовать другой инструмент рефакторинга, как уже было предложено Бьорном Файрвалом. – LazyOne

ответ

2

Выберите переменную и щелкните правой кнопкой мыши. Выберите «Refactor-> Extract-> Field». Введите имя, которое вы не хотите для поля.