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

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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