PHP 数组编辑器
发布日期:作者: Paul Redmond
Array Redactor 软件包是由 Mark Townsend 开发的 PHP 库,用于通过键来编辑数组值。我认为了解此软件包工作原理的最简单方法是通过 自述文件 中的代码示例。
use Mtownsend\ArrayRedactor\ArrayRedactor; // An example array, maybe a request being made to/from an API application you wish to log in your database$login = [ 'email' => '[email protected]', 'password' => 'secret123', 'data' => [ 'session_id' => 'z481jf0an4kasnc8a84aj831' ],]; $redactor = (new ArrayRedactor($login, ['password', 'session_id']))->redact(); // $redactor will return:[ 'email' => '[email protected]', 'password' => '[REDACTED]', 'data' => [ 'session_id' => '[REDACTED]' ],];
该软件包还允许您传递一个有效的 JSON 字符串,而不是一个内容数组。
$json = json_encode([ 'email' => '[email protected]', 'password' => 'secret123', 'data' => [ 'session_id' => 'z481jf0an4kasnc8a84aj831' ],]); $redactor = (new ArrayRedactor($json, ['password', 'session_id']))->redact();
与之前的示例一样,redactor 调用将返回 JSON 字符串的数组版本。
此软件包对任何 PHP 项目都有用,并且还提供了一个服务提供者,您可以将其与 Lumen 和 Laravel 一起使用。此外,如果您想使用该项目的 Laravel Facade,您需要在您的 config/app.php
文件中注册别名。
<?php return [ // ... 'aliases' => [ // ... 'ArrayRedactor' => Mtownsend\ArrayRedactor\Facades\ArrayRedactor::class, ],];
然后在 Laravel 项目中启用以下内容:
use ArrayRedactor; // Laravel prefills our keys() and ink() methods for us from the config fileArrayRedactor::content($array)->redact();
在 Laravel 项目中使用此项目时,您需要配置要编辑的键,您可以在发布供应商配置后,在 config/arrayredactor.php 文件中找到这些键。
您为什么要使用这个软件包?作者在软件包的自述文件中提供了解释。
您是否曾经构建过或与 API 交互过,并且需要记录所有传入和传出的调用?很可能在该过程中某个地方存在身份验证,无论是通过应用程序还是代表用户进行的身份验证。日志对于调试很有用,但存储敏感信息(如密码或 API 密钥)不是您希望在日志中让任何人看到的。使用范围超出了此示例,但这就是促使我创建 ArrayRedactor 软件包的原因。
您可以在 mtownsend5512/array-redactor 上了解有关此软件包的更多信息,获取完整的安装说明并查看源代码。