1. Go to this page and download the library: Download directorytree/anonymize library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
directorytree / anonymize example snippets
namespace App\Models;
use Faker\Generator;
use Illuminate\Database\Eloquent\Model;
use DirectoryTree\Anonymize\Anonymized;
use DirectoryTree\Anonymize\Anonymizable;
class User extends Model implements Anonymizable
{
use Anonymized;
public function getAnonymizedAttributes(Generator $faker): array
{
return [
'name' => $faker->name(),
'email' => $faker->safeEmail(),
'phone' => $faker->phoneNumber(),
'address' => $faker->address(),
];
}
}
use DirectoryTree\Anonymize\Facades\Anonymize;
class AppServiceProvider extends ServiceProvider
{
public function boot(): void
{
if (session('anonymize')) {
Anonymize::enable();
}
}
}
use DirectoryTree\Anonymize\Facades\Anonymize;
// Enable anonymization
Anonymize::enable();
// Disable anonymization
Anonymize::disable();
// Check if anonymization is enabled
if (Anonymize::isEnabled()) {
// Anonymization is active
}
Anonymize::enable();
$user1 = User::find(1);
$user2 = User::find(1);
// Both instances will have identical fake data
$user1->name === $user2->name; // true
$user1->email === $user2->email; // true
$user1 = User::find(1);
$user2 = User::find(2);
// Different users get different fake data
$user1->name !== $user2->name; // true
$user1->email !== $user2->email; // true
class User extends Model implements Anonymizable
{
use Anonymized;
public function getAnonymizableSeed(): string
{
return "my-custom-seed:{$this->id}";
}
public function getAnonymizedAttributes(Generator $faker): array
{
return [
'name' => $faker->name(),
'email' => $faker->safeEmail(),
];
}
}
public function getAnonymizedAttributes(Generator $faker): array
{
$attributes = [];
// Always anonymize email
$attributes['email'] = $faker->safeEmail();
// Only anonymize name for non-admin users
if (! $this->is_admin) {
$attributes['name'] = $faker->name();
}
return $attributes;
}
namespace App\Http\Resources;
use Faker\Generator;
use Illuminate\Http\Request;
use DirectoryTree\Anonymize\Anonymizable;
use DirectoryTree\Anonymize\AnonymizedResource;
use Illuminate\Http\Resources\Json\JsonResource;
class UserResource extends JsonResource implements Anonymizable
{
use AnonymizedResource;
public function toArray(Request $request): array
{
return $this->toAnonymized([
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'phone' => $this->phone,
]);
}
public function getAnonymizedAttributes(Generator $faker): array
{
return [
'name' => $faker->name(),
'email' => $faker->safeEmail(),
'phone' => $faker->phoneNumber(),
];
}
}
Anonymize::enable();
$user = User::find(1);
$resource = new UserResource($user);
// Returns anonymized data instead of original values.
$response = $resource->resolve();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.