如何在PHPStorm中为Flight PHP微框架添加自动完成功能

时间:2014-10-29 09:01:00

标签: autocomplete phpstorm flightphp

我已经开始使用Flight microframework,但所有方法都隐藏在引擎盖下(未在Flight class中声明)。

如何配置PHPStorm或者我应该编写新的规则集?

更新:使用框架实例不起作用

我尝试使用框架实例,但没有成功 - 我在建议列表中有内部方法:

enter image description here

更新:在Flight框架中实现自动完成

1 个答案:

答案 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() {}
}

以下是现在的样子:

enter image description here

正如您所看到的那样Flight是欠波浪的 - IDE说这个项目中有多个具有此类名称的类。告诉PhpStorm不报告此类案件:

enter image description here


通过@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
{
...
}