在 David Négrier 的 Safe PHP 中, 所有返回 false 的 php 函数都会被重写,直接抛出异常。自述文件讲述了异常处理添加到 PHP 之前函数返回 false 的问题。
此项目的 Readme 文件中,描述了函数返回 false 的历史问题:
大多数 PHP 核心函数都是在引入异常处理之前编写的。 因此大多数 PHP 函数都不会抛出异常,只会在出错时返回 false 。
readme文件进一步解释了使用当前的PHP语言实现对 false 判断的形式是如何的:
$content = file_get_contents('foobar.json');
if ($content === false) {
throw new FileLoadingException('Could not load file foobar.json');
}
$foobar = json_decode($content);
if (json_last_error() !== JSON_ERROR_NONE) {
throw new FileLoadingException('foobar.json does not contain valid JSON: '.json_last_error_msg());
}
Safe PHP 对这种场景的解决方案如下:
Safe-PHP 重新定义了所以PHP核心函数。除了在错误发生时会抛出一个异常,新PHP函数其他方面和旧函数一致。「safe」的函数和旧的PHP核心函数名称一样,只是「safe」的函数在 Safe 命名空间之下。
以下是使用此包想要用到的方法:
use function Safe\file_get_contents;
use function Safe\json_decode;
// 这些代码既安全又简单!
$content = file_get_contents('foobar.json');
$foobar = json_decode($content);
你可以通过访问 GitHub 包源码 来获取关于包更多的信息。 该报还具有一些自动重构功能。
注意: 安全 PHP 包被声明为实验版本,由于一些 剩余未解决的问题 尚未到 1.0版本
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。