PHPackages                             php-anonymizer/anonymizer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. php-anonymizer/anonymizer

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

php-anonymizer/anonymizer
=========================

Library to remove confidential data from different data containers

0.4.1(5mo ago)622.1k—6.3%[3 PRs](https://github.com/toniliesche/php-anonymizer/pulls)MITPHPPHP ^8.2CI passing

Since Sep 16Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/toniliesche/php-anonymizer)[ Packagist](https://packagist.org/packages/php-anonymizer/anonymizer)[ RSS](/packages/php-anonymizer-anonymizer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (29)Versions (36)Used By (0)

Toni's Data Anonymization Toolkit a.k.a. "php-anonymizer"
=========================================================

[](#tonis-data-anonymization-toolkit-aka-php-anonymizer)

00 Preliminary
--------------

[](#00-preliminary)

### Project Status

[](#project-status)

[![Tests](https://github.com/toniliesche/php-anonymizer/actions/workflows/ci.yml/badge.svg)](https://github.com/toniliesche/php-anonymizer/actions/workflows/ci.yml)[![Code Coverage](https://camo.githubusercontent.com/047ebc221607c0f56bb1588e14d1d3c1978f44dc92ecd0be9d3cbb5b2985f7c8/68747470733a2f2f636f6465636f762e696f2f67682f746f6e696c6965736368652f7068702d616e6f6e796d697a65722f6272616e63682f646576656c6f702f67726170682f62616467652e737667)](https://codecov.io/gh/toniliesche/php-anonymizer)[![Downloads](https://camo.githubusercontent.com/bcc0ea76ff2f5912a7b68cf4ac0176489ec9aad0cd5507dd8c105bf047a40077/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7068702d616e6f6e796d697a65722f616e6f6e796d697a65722e737667)](https://packagist.org/packages/php-anonymizer/anonymizer)[![Stars](https://camo.githubusercontent.com/00a015f40a9076902bbf46f3d6bd1681f7cfb49c9c4da74c5d34a463a981a412/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f746f6e696c6965736368652f7068702d616e6f6e796d697a6572)](https://github.com/toniliesche/php-anonymizer/stargazers)

### Project Info

[](#project-info)

[![PHP Version](https://camo.githubusercontent.com/49ea00cd3959501f83633ec179b90071fabcb7462d0f96f1d3c5f0f034d6ba9e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f7068702d616e6f6e796d697a65722f616e6f6e796d697a6572)](https://github.com/toniliesche/php-anonymizer)[![Latest Version](https://camo.githubusercontent.com/9ecabde9501b1f0215c19f358dbfc92f80d8849379628bf5bdf0aaea4e95901f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7068702d616e6f6e796d697a65722f616e6f6e796d697a65722e737667)](https://packagist.org/packages/php-anonymizer/anonymizer)[![License](https://camo.githubusercontent.com/bf28030bfa17b235b5a30536427602b57027b58ad07265ada1630e9bae8bb706/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f746f6e696c6965736368652f7068702d616e6f6e796d697a6572)](https://raw.githubusercontent.com/toniliesche/php-anonymizer/refs/heads/main/LICENSE.md)

### Repo Status

[](#repo-status)

[![Last Commit](https://camo.githubusercontent.com/c69d8fdb16b58c34b871e019e266340d34151565571f22daff8155dac3bfa2c4/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f746f6e696c6965736368652f7068702d616e6f6e796d697a6572)](https://github.com/toniliesche/php-anonymizer)[![Issues](https://camo.githubusercontent.com/68a081568890a2ea101f0e0459566db44e4bdf740d0ac4eaad1f01995565e24c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f746f6e696c6965736368652f7068702d616e6f6e796d697a6572)](https://github.com/toniliesche/php-anonymizer/issues)

### License

[](#license)

This project is released under MIT license.

See the [LICENSE](LICENSE.md) for more information.

### Table of Contents

[](#table-of-contents)

- [00 Preliminary](#00-preliminary)
    - [Project Status](#project-status)
    - [Project Info](#project-info)
    - [License](#license)
    - [Table of Contents](#table-of-contents)
    - [Purpose](#purpose)
    - [Getting started](#getting-started)
- [01 Basic usage](#01-basic-usage)
    - [Creating an Anonymizer instance](#creating-an-anonymizer-instance)
    - [Example Output](#example-output)
- [02 Writing definition rules](#02-writing-definition-rules)
    - [02.01 Array based syntax](#0201-array-based-syntax)
    - [02.02 Regular Expression Based Syntax (deprecated)](#0202-regular-expression-based-syntax-deprecated)
        - [02.02.01 Basic rule syntax](#020201-basic-rule-syntax)
        - [02.02.02 Array rule syntax](#020202-array-rule-syntax)
        - [02.02.03 Property access syntax](#020203-property-access-syntax-complex-rule-parser-only)
        - [02.02.04 Fake data type annotation](#020204-fake-data-type-annotation-complex-rule-parser-only)
        - [02.02.05 Nested data type annotation](#020205-nested-data-type-annotation-complex-rule-parser-only)
- [03 Using Faker as a data provider](#03-using-faker-as-a-data-provider)
    - [03.01 Use default Faker instance of builder](#0301-use-default-faker-instance-of-builder)
    - [03.02 Use custom Faker instance](#0302-use-custom-faker-instance)
    - [03.03 Set seed for Faker instance](#0303-set-seed-for-faker-instance)
- [04 Data Encoding](#04-data-encoding)
    - [04.01 NoOpEncoder](#0401-noopencoder)
    - [04.02 CloneEncoder](#0402-cloneencoder)
    - [04.03 JsonEncoder](#0403-jsonencoder)
    - [04.04 YamlEncoder](#0404-yamlencoder)
    - [04.05 Array2JsonEncoder](#0405-array2jsonencoder)
    - [04.06 SymfonyEncoder](#0406-symfonyencoder)
    - [04.07 Symfony2JsonEncoder](#0407-symfony2jsonencoder)
    - [04.08 Symfony2ArrayEncoder](#0408-symfony2arrayencoder)
- [05 Extended Information](#06-extended-information)
    - [05.01 Manual setup of Anonymizer](#0501-manual-setup-of-anonymizer)
        - [05.01.01 RuleSet parser](#050101-ruleset-parser)
        - [05.01.02 DependencyChecker](#050102-dependencychecker)
        - [05.01.03 DataAccessProvider](#050103-dataaccessprovider)
        - [05.01.04 DataGenerationProvider](#050104-datagenerationprovider)
        - [05.01.05 DataEncodingProvider](#050105-dataencodingprovider)
        - [05.01.06 DataProcessor](#050106-dataprocessor)
        - [05.01.07 Anonymizer](#050107-anonymizer)
    - [05.02 Builder setup of Anonymizer](#0502-builder-setup-of-anonymizer)
        - [05.02.01 Creating AnonymizerBuilder](#050201-creating-anonymizerbuilder)
        - [05.02.02 Setting Defaults](#050202-setting-defaults)
        - [05.02.03 Setting NodeParser](#050203-setting-nodeparser)
        - [05.02.04 Setting NodeMapper](#050204-setting-nodemapper)
        - [05.02.05 Setting DataAccessProvider](#050205-setting-dataccessprovider)
        - [05.02.06 Setting DataGenerationProvider](#050206-setting-datagenerationprovider)
        - [05.02.07 Enabling Faker](#050207-enabling-faker)
        - [05.02.08 Setting Custom Faker](#050208-setting-custom-faker)
        - [05.02.09 Setting Faker Seed](#050209-setting-faker-seed)
        - [05.02.10 Setting Rule Loader](#050210-setting-rule-loader)
        - [05.02.11 Setting RuleSetParser](#050211-setting-rulesetparser)
        - [05.02.12 Setting DataProcessor](#050212-setting-dataprocessor)

### Purpose

[](#purpose)

This library is a simple data anonymization toolkit that allows to define rules for anonymizing data in a structured way. By using this library it is possible to skip writing a lot of boilerplate code to navigate through your data structures again and again. The library is designed to be flexible and extensible, so that it can be used in a wide range of use cases. It also ships with support of `fakerphp/faker` as a provider for randomized fake data.

### Getting started

[](#getting-started)

```
composer require php-anonymizer/anonymizer
```

01 Basic usage
--------------

[](#01-basic-usage)

### Creating an Anonymizer instance

[](#creating-an-anonymizer-instance)

If you want to start with the most basic usage of modifying data in an array structure, all you have to do is to create an instance of the `Anonymizer` class, register a rule set by using `registerRuleSet` and call the `run` method with the data you want to modify.

```
// examples/01_basic_usage.php
