Safe PHP 项目 - 重写原生 PHP 函数使其在发生错误时抛出异常

file

在 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 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/php-safe

译文地址:https://learnku.com/laravel/t/18737

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!