kielabokkie / laravel-conceal
在数组或集合中隐藏数据
v1.4.0
2022-01-05 20:59 UTC
Requires
- php: ^7.2|^8.0
- illuminate/support: ^5.7|^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ^3.7|^4.0
README
此包允许你在数组或集合中隐藏敏感数据。这在将可能敏感的数据写入日志文件时特别有用。
安装后,你可以进行以下操作
$data = [ 'username' => 'wouter', 'api_key' => 'secret' ]; $hide = ['api_key']; $output = conceal($data, $hide); print_r($output); // Outputs: ['username' => 'wouter', 'api_key' => '********']
要求
- PHP >= 7.2
- Laravel 5.7+ | 6 | 7 | 8
安装
通过 composer 安装此包
composer require kielabokkie/laravel-conceal
包配置
此包配置最少。目前你可以设置的只是默认隐藏的键。如果你想添加自己的默认设置,可以通过运行以下命令发布配置文件
php artisan vendor:publish --provider="Kielabokkie\LaravelConceal\ConcealServiceProvider"
以下是将发布到 config/conceal.php
的文件内容
return [ /* * Array of keys that will be concealed automatically. */ 'defaults' => [ 'password', 'password_confirmation', ] ];
用法
使用默认配置隐藏密码
$data = [ 'username' => 'wouter', 'password' => 'secret' ]; $output = conceal($data); print_r($output); // Outputs: ['username' => 'wouter', 'password' => '********']
动态设置键
$data = [ 'api_key' => 'secret' ]; $output = conceal($data, ['api_key']); print_r($output); // Outputs: ['api_key' => '********']
对于集合来说,所有操作都是一样的
$data = new Collection([ 'username' => 'wouter', 'password' => 'secret' ]); $output = conceal($data); print_r($output->toArray()); // Outputs: ['username' => 'wouter', 'password' => '********']
最后但同样重要的是,它也支持递归操作
$data = [ 'password' => 'secret', 'nextlevel' => [ 'password' => 'secret', ] ]; $output = conceal($data); print_r($output); // Outputs: ['password' => '********', 'nextlevel' => ['password' => '********']]
外观
上面的例子使用了 conceal()
辅助函数。如果你更喜欢外观,可以使用它。
use Kielabokkie\LaravelConceal\Facades\Concealer; $data = [ 'password' => 'secret' ]; $output = Concealer::conceal($data); print_r($output); // Outputs: ['password' => '********']