PHPackages                             nacosvel/transformer-mapper - 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. nacosvel/transformer-mapper

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

nacosvel/transformer-mapper
===========================

The Nacosvel Components

v1.0.0(4mo ago)071MITPHPPHP ^8.0

Since Dec 22Pushed 4mo agoCompare

[ Source](https://github.com/nacosvel/transformer-mapper)[ Packagist](https://packagist.org/packages/nacosvel/transformer-mapper)[ Docs](https://github.com/nacosvel/transformer-mapper)[ RSS](/packages/nacosvel-transformer-mapper/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (2)Versions (2)Used By (1)

Transformer Mapper
==================

[](#transformer-mapper)

The Nacosvel Components

[![GitHub Tag](https://camo.githubusercontent.com/e89226ce0896e305a90db6618e41b5306d45ecdfa7fea86ba47e2145f259a767/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f7461672f6e61636f7376656c2f7472616e73666f726d65722d6d6170706572)](https://github.com/nacosvel/transformer-mapper/tags)[![Total Downloads](https://camo.githubusercontent.com/068edd56f40ab20559716370e126914bf7a9096dd461440bc099d3cc10681e4a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6e61636f7376656c2f7472616e73666f726d65722d6d61707065723f7374796c653d666c61742d737175617265)](https://packagist.org/packages/nacosvel/transformer-mapper)[![Packagist Version](https://camo.githubusercontent.com/9e2e1004922ad183ef70a0f049ea6205c92c736664aa5072baab57d328fb6664/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e61636f7376656c2f7472616e73666f726d65722d6d6170706572)](https://packagist.org/packages/nacosvel/transformer-mapper)[![Packagist PHP Version Support](https://camo.githubusercontent.com/c2c3e7d1d64a78664baf0fff097c36a48d90d07126b0e2789060cc124356af68/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6e61636f7376656c2f7472616e73666f726d65722d6d6170706572)](https://github.com/nacosvel/transformer-mapper)[![Packagist License](https://camo.githubusercontent.com/630ea6831e6c6222ac8aa3b70eb880f1af3550bfd2faadb4ac083fc9acd703c6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6e61636f7376656c2f7472616e73666f726d65722d6d6170706572)](https://github.com/nacosvel/transformer-mapper)

 Table of Contents1. [Installation](#installation)
2. [Usage](#usage)
3. [Contributing](#contributing)
4. [Contributors](#contributors)
5. [License](#license)

Installation
------------

[](#installation)

You can install the package via [Composer](https://getcomposer.org):

```
composer require nacosvel/transformer-mapper
```

\[[back to top](#readme-top)\]

Usage
-----

[](#usage)

```
// 测试示例
$input = [
    'user'     => [
        'id'      => 1,
        'name'    => 'Alice',
        'address' => [
            'city' => 'Beijing',
            'zip'  => '100000',
        ],
    ],
    'client'   => [
        'id'      => 2,
        'name'    => 'Bob',
        'address' => [
            'city' => 'Shanghai',
            'zip'  => '200000',
        ],
    ],
    'products' => [
        [
            'id'    => 101,
            'name'  => 'Product A',
            'price' => 100,
        ], [
            'id'    => 102,
            'name'  => 'Product B',
            'price' => 200,
        ],
    ],
    'return.url' => 'https://example.com/pay/return',
    'cancel.url' => 'https://example.com/pay/notify/paypal',
];
// 定义映射规则
$rules = [
    'member.id'            => 'user.id',
    'member.name'          => 'user.name',
    // 'member.address'       => 'user.address',
    'address.address_city' => 'user.address.city',
    'address.address_zip'  => 'user.address.zip',
    'user.id'              => 'client.id',
    'user.name'            => 'client.name',
    'user.address_city'    => 'client.address.city',
    'products.*.uuid'      => 'products.*.id',
    'products.*.user_name' => 'products.*.name',
    'prices'               => [
        'input'     => 'products.*.price',
        'transform' => function ($prices) {
            return array_map(fn($price) => $price * 10, $prices);
        },
    ],
    'return\.url'          => 'return\.url',
    'cancel.url'           => 'cancel\.url',
    'default'              => [
        'input'     => null,
        'default'   => null,
        'transform' => function ($default) {
            return $default ?? 'default';
        },
    ],
    'function'             => fn($data) => $data['client']['name'],
];
```

### `WildcardMapper::class`

[](#wildcardmapperclass)

```
use Nacosvel\TransformerMapper\WildcardMapper;

$wildcard = new WildcardMapper($input);
$mapper   = $wildcard->mapper($rules);

// $mapper
$mapper = [
    'member'     => [
        'id'   => 1,
        'name' => 'Alice',
    ],
    'address'    => [
        'address_city' => 'Beijing',
        'address_zip'  => '100000',
    ],
    'user'       => [
        'id'           => 2,
        'name'         => 'Bob',
        'address_city' => 'Shanghai',
    ],
    'products'   => [
        [
            'uuid'      => 101,
            'user_name' => 'Product A',
        ],
        [
            'uuid'      => 102,
            'user_name' => 'Product B',
        ],
    ],
    'return.url' => 'https://example.com/pay/return',
    'cancel'     => [
        'url' => 'https://example.com/pay/notify/paypal',
    ],
    'prices'     => [
        0 => 1000,
        1 => 2000,
    ],
    'default'    => 'default',
    'function'   => 'Bob',
];
```

Contributing
------------

[](#contributing)

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

\[[back to top](#readme-top)\]

Contributors
------------

[](#contributors)

Thanks goes to these wonderful people:

[ ![contrib.rocks image](https://camo.githubusercontent.com/0e61202a99f0563a5edfbd20a9887283a660b1d5338ad041604331429cb74b33/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d6e61636f7376656c2f7472616e73666f726d65722d6d6170706572)](https://github.com/nacosvel/transformer-mapper/graphs/contributors)Contributions of any kind are welcome!

\[[back to top](#readme-top)\]

License
-------

[](#license)

Distributed under the MIT License (MIT). Please see [License File](https://github.com/nacosvel/transformer-mapper/blob/main/LICENSE) for more information.

\[[back to top](#readme-top)\]

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance74

Regular maintenance activity

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

140d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2da9b458375a1b7972b7c4d26a5bf8f3e48db305e8805da36f253956f33c5568?d=identicon)[jundayw](/maintainers/jundayw)

---

Top Contributors

[![jundayw](https://avatars.githubusercontent.com/u/16873970?v=4)](https://github.com/jundayw "jundayw (2 commits)")

---

Tags

NacosvelTransformerMappertransformer-mapper

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/nacosvel-transformer-mapper/health.svg)

```
[![Health](https://phpackages.com/badges/nacosvel-transformer-mapper/health.svg)](https://phpackages.com/packages/nacosvel-transformer-mapper)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
