1

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

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

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

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

在此处输入图像描述

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

4

1 回答 1

2

首先:我建议在他们的问题跟踪器上提交新问题,要求提供某种帮助文件(如下所示)..或以任何其他方式实现它(例如通过 PHPDoc'@methodFlight- 不需要帮助,并且实际代码没有变化——只是 PHPDoc),因此 IDE(例如 PhpStorm 或 Netbeans)不会抱怨不存在的方法,并且您将从 IDE 获得一些代码完成帮助。

魔术很好..但当整个界面都基于这种魔术时就不行了。


关于实际问题,您可以自己解决。

您将不得不花费一些时间(半小时甚至更少)并创建一些假Flight并将其放在您的 IDE 中的任何位置——它将仅用于代码完成。的,IDE 可能会警告您有关重复的类.. 但可以关闭该检查。

这个想法是创建一个类并声明所有必需的方法,如果它是一个普通类,它们应该已经完成​​。首先(将解决其自述文件中第一个代码示例的问题):

<?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 不要报告此类情况:

在此处输入图像描述


通过PHPDoc 标签向原始类添加方法:@method

/**
 * 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
{
...
}
于 2014-10-29T10:43:37.783 回答