php class __call,都 2016 年了, PhpStorm 代码提示遇到__call()大家是怎么完美解决的?...

团队用的框架是 zf3 ,我们自己弄了一个库,做了很多辅助轮子来方便各个项目使用,包括很多 controller 的 plugin 和 view helper

这些都是 zf 框架通过 __call() 来使用的

那么写代码的时候怎么让 PhpStorm 识别这些魔术方法呢,总不能去改框架的代码

目前的方案是在自己的库里放了个 phpstorm.doc.php 来专门标记文档

看起来是这样的:

namespace Zend\View\Renderer {

/**

* Class PhpRenderer

* @package Zend\View\Renderer

* @method string foo()

* @method string bar(string $arg)

*/

class PhpRenderer {}

}

namespace Zend\Mvc\Controller {

/**

* Class AbstractActionController

* @package Zend\Mvc\Controller

* @method bool myMethod1()

* @method bool myMethod2()

*/

abstract class AbstractActionController {}

}

这样在项目 composer.json 引入自己的库后, PhpStorm 能识别到这些新增方法,缺点就是会有类重复定义的警告

另一个头痛的问题是那些 view helper.

zf 默认模板是 action.phtml 文件,这些模板本质上是被 PhpRenderer->render() include 进来的,如果要让 PhpStorm 识别这些 view helper ,需要在文件头注释一个

<?php $this->//此时自动提示会有我们的新增方法 ?>

这太麻烦了,我也不想弄个自定义模板在每个.phtml 文件头都插这样一坨奇怪的东西

大家有什么好的建议不? PhpStorm 有没有啥插件能做到让 .phtml 这种文件类型 自动预设一些 phpdoc 进去(但是文件里本身不可见)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值