我已经开始使用Flight microframework,但所有方法都隐藏在引擎盖下(未在Flight class中声明)。
如何配置PHPStorm或者我应该编写新的规则集?
我尝试使用框架实例,但没有成功 - 我在建议列表中有内部方法:
答案 0 :(得分:2)
首先:我建议在Issue Tracker上提交新问题,要求提供某种帮助文件(如下所示)..或者在任何地方实施其他方式(例如通过PHPDoc' @method
用于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
{
...
}