Конвертировать из публичной собственности доступ к геттеру в PHPStorm
У меня есть проект, который содержит много экземпляров открытых свойств набора классов, доступ к которым осуществляется напрямую через $object->property
, После преобразования свойств в protected
и сгенерировал геттеры и сеттеры для каждого свойства.
Теперь я хотел бы провести рефакторинг каждого общедоступного свойства с соответствующим геттером. Есть ли в любом случае это может быть автоматизировано через PHPStorm?
Найти и заменить бесполезно, потому что объекты имеют разные имена в разных местах.
PHPStorm уже обнаружил Member has protected access
, Может ли он обнаружить, что генерируется соответствующий геттер, и произвести замену там, где это происходит?
1 ответ
К сожалению, опция рефакторинга "Инкапсулировать поля" из IDEA недоступна в PhpStorm, поэтому невозможно полностью автоматизировать этот процесс. Может быть возможно написать плагин для этого, но, насколько я нашел, ни один в настоящее время не доступен.
Если я правильно прочитал ваш пост, вы уже защитили поля и сгенерировали необходимые методы получения. Чтобы быстро просмотреть все случаи доступа к защищенным свойствам, вы можете создать новый профиль проверки только для проверок аннотатора:
- Перейти в Файл -> Настройки
- Перейти в редактор -> Инспекции
- Нажмите "Управление" -> "Копировать", чтобы создать новый профиль проверки.
- Отключить все проверки, кроме General -> Annotator.
- Теперь щелкните правой кнопкой мыши корневой каталог проекта, выберите "Проверка кода" и выполните проверку с использованием нового профиля. Все случаи защищенного или частного доступа будут перечислены.
Надеюсь, это будет хоть как-то полезно для вас:)
Я использую эти шаги, чтобы решить эту проблему:
- Рефакторинг -> Переименовать. Переименуйте общедоступную собственность на какое-нибудь уникальное имя, например "askjdhakdjhqeoifnowinevowinvoiwn".
- Замените все вхождения "askjdhakdjhqeoifnowinevowinvoiwn" в своем проекте на геттер, например, "getProperty()".
- Установите публичное свойство на защищенное.