首页 > 解决方案 > PhpStorm 中的 setter 中的 camelCase 参数

问题描述

我的类中有 under_score 命名属性,例如transaction_idor web_order_item_id。我想在我生成它时在我的设置器中自定义参数名称。

现在它生成这个:

/**
 * @param int $original_transaction_id .camelCase()
 */
public function setOriginalTransactionId(int $original_transaction_id): void
{
    $this->original_transaction_id = $original_transaction_id;
}

但我想要这个:

/**
 * @param int $originalTransactionId .camelCase()
 */
public function setOriginalTransactionId(int $originalTransactionId): void
{
    $this->original_transaction_id = $originalTransactionId;
}

我试图在Settings/Editor/File and Code Templates/Code/Php Setter Method中更改此行为,但我找不到这样做的能力。模板中有一个变量:

${NAME}

但它以这种形式返回值$OriginalTransactionId而不是$originalTransactionId

标签: jetbrains-ideintelinde

解决方案


您可以在此处尝试使用 Apache Velocity StringUtils,例如

#set($Setter_param = ${StringUtils.removeAndHump(${PARAM_NAME})})
#set($Setter_param = $Setter_param.substring(0,1).toLowerCase() + $Setter_param.substring(1))

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

推荐阅读