PhpStorm中自定义Twig函数isAllowed路由参数自动补全问题
解决Twig自定义函数
isAllowed路由补全失效的问题 我之前也碰到过类似的情况,PhpStorm对自定义Twig函数的路由补全确实需要额外注意几个细节,结合你的场景,给你几个排查和解决的方向:
确认Twig扩展的注册方式
一定要保证你的自定义Twig扩展是通过Symfony的依赖注入容器注册的,并且添加了twig.extension标签。如果是手动在Twig环境里直接添加的扩展,Symfony插件可能没法自动识别函数的参数类型,这时候就必须手动配置补全规则。手动配置Twig函数的参数补全规则
你已经搞定了PHP代码里的补全,但Twig的补全逻辑是独立的,需要单独设置:- 打开PhpStorm设置(快捷键
Ctrl+Alt+S,或者通过File > Settings进入) - 导航到
Languages & Frameworks > Twig > Functions - 点击右上角的
+号新增函数配置:- 函数名填
isAllowed - 在
Parameters列表选中第一个参数,右侧Type下拉框选择Symfony Route Name
- 函数名填
- 保存设置后重启PhpStorm,再测试路由补全效果
- 打开PhpStorm设置(快捷键
检查插件与IDE版本的兼容性
你使用的PhpStorm 2019.1.2和Symfony插件0.17.172版本都比较旧,早期版本的插件对自定义Twig函数的路由补全支持确实有局限。如果条件允许:- 尝试把Symfony插件更新到对应PhpStorm版本的最新兼容版(去插件市场找2019.1支持的最新版本)
- 或者考虑升级PhpStorm到2020及以上版本,后续版本对Symfony生态的支持更完善,自定义Twig函数的补全逻辑也更成熟
重建IDE索引
有时候索引损坏会导致补全功能失效,你可以试试:- 点击
File > Invalidate Caches... - 勾选
Clear file system cache and local history,然后点击Invalidate and Restart - 重启后等待IDE重新索引项目,再测试
isAllowed的路由补全
- 点击
内容的提问来源于stack exchange,提问作者hakai
相关产品推荐
相关产品推荐

