首先:我建议在他们的Issue Tracker 上提交新问题,要求提供某种帮助文件(如下所示).. 或以任何其他方式实现它(例如通过 PHPDoc' @method for Flight 类 -- 不需要帮助程序,也不需要更改实际代码 -- 只是 PHPDoc),这样 IDE(例如 PhpStorm 或 Netbeans)就不会抱怨不存在的方法,你会有一些来自 IDE 的代码完成帮助。
魔法很好……但当整个界面都基于这种魔法时就不行了。
关于实际问题,您可以自己解决。
您将不得不花费一些时间(半小时甚至更少)并创建一些假的Flight 类并将其放在您的 IDE 中的任何位置——它将仅用于代码完成. 是的,IDE 可能会警告您有关重复的类.. 但可以关闭检查。
这个想法是创建一个类并声明所有必需的方法,如果它是一个普通类,它们应该这样做。首先(将在自述文件中解决first code example 的问题):
<?php
class Flight
{
/**
* Routes a URL to a callback function.
*
* @param string $pattern URL pattern to match
* @param callback $callback Callback function
* @param boolean $pass_route Pass the matching route object to the callback
*/
public static function route($pattern, $callback, $pass_route = false) {}
/**
* Starts the framework.
*/
public static function start() {}
}
这是现在的样子:
如您所见,Flight 被低估了——IDE 说这个项目中有不止一个类具有这样的名称。告诉 PhpStorm 不要报告此类情况:
通过@method PHPDoc 标签向原始类添加方法:
/**
* Bla-bla -- class description
*
* @method static void route(string $pattern, callback $callback, bool $pass_route = false) Routes a URL to a callback function
* @method static void start() Starts the framework
*/
class Flight
{
...
}