Настройка шаблона для генерации сеттера через self в PhpStorm

воскресенье, 28 апреля 2024 09:33:33, написал Admin

Для Symfony понадобилась настройка в PhpStorm для генерации сеттеров в Doctrine Engine, чтобы сгенерированные сеттеры отдавали сразу self.

Для настройки идем сюда: File / Settings / Editor / File and Code Templates, переключаемся на вкладку Code, выбираем Php Setter Method

Видим там такое содержимое:

/**
 * @param ${TYPE_HINT} $${PARAM_NAME}
 */
public ${STATIC} function set${NAME}(#if (${SCALAR_TYPE_HINT})${SCALAR_TYPE_HINT} #end$${PARAM_NAME})#if (${VOID_RETURN_TYPE}):void #end
{
#if (${STATIC} == "static")
    self::$${FIELD_NAME} = $${PARAM_NAME};
#else
    $this->${FIELD_NAME} = $${PARAM_NAME};
#end
}

Меняем его на

/**
 * @param ${TYPE_HINT} $${PARAM_NAME}
 */
public ${STATIC} function set${NAME}(#if (${SCALAR_TYPE_HINT})${SCALAR_TYPE_HINT} #end$${PARAM_NAME})#if (${VOID_RETURN_TYPE}):self #end
{
#if (${STATIC} == "static")
    self::$${FIELD_NAME} = $${PARAM_NAME};
#else
    $this->${FIELD_NAME} = $${PARAM_NAME};
    
    return $this;
#end
}

Теперь переключаемся на Php Fluent Setter Method

Заменяем код

/**
 * @param ${TYPE_HINT} $${PARAM_NAME}
 * @return ${CLASS_NAME}
 */
public function set${NAME}(#if (${SCALAR_TYPE_HINT})${SCALAR_TYPE_HINT} #else#end$${PARAM_NAME})#if(${RETURN_TYPE}): ${CLASS_NAME}#else#end
{
    $this->${FIELD_NAME} = $${PARAM_NAME};
    return $this;
}

На

/**
 * @param ${TYPE_HINT} $${PARAM_NAME}
 *
 * @return ${CLASS_NAME}
 */
public function set${NAME}($${PARAM_NAME}): self
{
    $this->${FIELD_NAME} = $${PARAM_NAME};

    return $this;
}

Все, теперь, когда мы генерируем код через команду Code / Generate… / Getters and Setters… сразу получаем self

phpStorm symfony PHP
  

Поделиться статьей с друзьями:

  

Комментарии к статье