闭包函数中的 PHPdoc 异常对象?
PHPdoc Exception object in closure function?
如何在 $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);
});
}
}
$exception
参数的Declare the type。它可以解决您的所有需求:
function ($response, \Exception $exception = null) { ...
不仅如此,它还阻止回调在使用参数 $expection
的无效类型调用时工作。
需要为 $exception
声明默认值 (null
) 以允许使用 null
为 $exception
调用函数;否则,当使用 null
作为第二个参数调用函数时,PHP 会触发错误。
如何在 $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);
});
}
}
$exception
参数的Declare the type。它可以解决您的所有需求:
function ($response, \Exception $exception = null) { ...
不仅如此,它还阻止回调在使用参数 $expection
的无效类型调用时工作。
需要为 $exception
声明默认值 (null
) 以允许使用 null
为 $exception
调用函数;否则,当使用 null
作为第二个参数调用函数时,PHP 会触发错误。