是否存在实现PHP普通函数与箭头函数互转的VSCode代码片段?
PHP(Laravel)箭头函数与普通闭包互转的VSCode代码片段
写PHP或者Laravel代码时,常会碰到这种需求:调试阶段要把简洁的箭头函数转成普通闭包,方便加dd()这类调试代码或者扩展逻辑;调试完成后,又要把冗余的普通闭包转回箭头函数精简代码。找了一圈没找到现成的VSCode代码片段,自己写了两个,分享给大家。
1. 箭头函数转普通闭包
转换示例
// 转换前 collect($someArray)->map(fn($item) => $item->value); // 转换后 collect($someArray)->map(function ($item) { dd($item); return $item->value; });
VSCode代码片段
把这段代码添加到你的PHP用户代码片段(php.json)中:
{ "Arrow Function to Regular Closure": { "prefix": "arrowToClosure", "body": [ "function ($1) {", " dd($1);", " return $2;", "}" ], "description": "Convert PHP arrow function to regular closure with debug line" } }
使用方式:选中箭头函数里的fn($item) => $item->value部分,输入前缀arrowToClosure或绑定快捷键触发片段,自动替换成带调试代码的普通闭包。
2. 普通闭包转箭头函数
转换示例
// 转换前 collect($someArray)->map(function ($item) { // dd($item); return $item->correct_value; }); // 转换后 collect($someArray)->map(fn($item) => $item->correct_value);
VSCode代码片段
同样添加到php.json中:
{ "Regular Closure to Arrow Function": { "prefix": "closureToArrow", "body": [ "fn($1) => $2" ], "description": "Convert PHP regular closure to arrow function" } }
使用方式:清理普通闭包内的注释、冗余代码后,选中function ($item) { ... return $item->correct_value; }部分,触发片段即可转换为简洁的箭头函数。
内容的提问来源于stack exchange,提问作者slowFooMovement
相关产品推荐
相关产品推荐

