封闭函数中的PHPdoc异常对象?

时间:2018-02-22 14:46:01

标签: php closures phpdoc

如何在$ exception变量中获得异常建议?

现在我正在使用PHPStorm。正如我记得在Netbeans中有一个函数来创建适当的PHPdoc。

class Controller {

    /**
     * @param          $params
     * @param callable $callback
     * @return array|\Exception
     */
    public final function query(array $params, $callback = null) {

        try {

            /** another dummy code */

        } catch (\Exception $exception) {

            /** Boom! Error! */
            if (is_null($callback)) return $params; else return $callback(null, $exception);

        }
    }
}

class someController extends Controller {

    public function someFunction() {
        $someParams = [];

        $this->query($someParams, function ($response, $exception) {

            if ($exception) return print $exception->/**getMessage(), getCode() etc */;

            /** more dummy code */
            print $this->render("template.twig", $response);
        });
    }
}

enter image description here

1 个答案:

答案 0 :(得分:1)

$exception参数的

Declare the type。它解决了您的所有需求:

function ($response, \Exception $exception = null) { ...

更重要的是,当使用参数$expection的无效类型调用回调时,它会阻止回调工作。

要求null声明默认值($exception),以便null调用$exception的函数;否则,当以null作为其第二个参数调用函数时,PHP会触发错误。