PhpStorm 制作实时模板:逗号分隔的字符串到关联数组

PhpStorm Making a Live template: Comma delimited string to associative array

在 PhpStorm 中,我想像这样突出显示一个字符串:

$entity_type, $entity, $field, $instance, $langcode, $items, $display

并使用实时模板将其转换为如下所示的字符串:

    '$entity_type' => $entity_type,
    '$entity' => $entity,
    '$field' => $field,
    '$instance' => $instance,
    '$langcode' => $langcode,
    '$items' => $items,
    '$display' => $display,

我目前有一个模板,感觉离我想要的有一步之遥。我的模板目前可以采用选定的字符串并将该字符串转换为关联数组元素:突出显示 $entity_type 并使用实时模板命令将其转换为 '$entity_type' => $entity_type,.

我当前的实时模板代码采用选择并将其转换为单个 php 数组元素:

'$SELECTION$' => $SELECTION$,$END$

我一直在猜测如何使用 PhpStorm 的 pre-defined functions

出于调试目的,我经常会从函数中提取一串参数,使用实时模板帮助我更快地创建关联数组将真正加快我的世界。

编辑:我正在为 Drupal 7 调试,如果这有什么不同的话。通常我只需要一个使用 Devel 函数的快速函数,如下所示:

  dpm(array(
    '$entity_type' => $entity_type,
    '$entity' => $entity,
    '$field' => $field,
    '$instance' => $instance,
    '$langcode' => $langcode,
    '$items' => $items,
    '$display' => $display,
    '$elements' => $elements,
  ), 'mymodule_field_formatter_view');

我认为在 PhpStorm 中使用实时模板是不可能的。您必须通过逗号将选择拆分为一个集合,然后对于该集合中的每个元素,复制它并用引号将第一次出现的元素括起来。这个功能好像没有这个功能。

I will often pull a string of arguments out of a function for debugging purposes and having a live template help me create an associative array faster would really speed up my world.

用于调试的最佳工具是调试器。如果将 XDebug 与 PhpStorm 集成,您甚至可以直接在编辑器中看到参数值。但是,如果您真的只想 var_dump() 当前函数的参数,只需使用 func_get_args().