PHPackages                             kjos/kjos-laravel-parameter-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. kjos/kjos-laravel-parameter-mapper

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

kjos/kjos-laravel-parameter-mapper
==================================

ParameterMapper tool for Laravel and other

v1.3.4(5mo ago)113MITPHPPHP ^7.0|^8.0

Since Nov 17Pushed 5mo agoCompare

[ Source](https://github.com/jeankoffi543/kjos-laravel-parameter-mapper)[ Packagist](https://packagist.org/packages/kjos/kjos-laravel-parameter-mapper)[ RSS](/packages/kjos-kjos-laravel-parameter-mapper/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (15)Versions (26)Used By (0)

[![Packagist Version](https://camo.githubusercontent.com/6e7178cb418aca02f797b30b1fc4cc6f607d37c089e5d1ab8b53514d043bbedc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6b6a6f732f6b6a6f732d6c61726176656c2d706172616d657465722d6d6170706572)](https://camo.githubusercontent.com/6e7178cb418aca02f797b30b1fc4cc6f607d37c089e5d1ab8b53514d043bbedc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6b6a6f732f6b6a6f732d6c61726176656c2d706172616d657465722d6d6170706572)[![PHP](https://camo.githubusercontent.com/29e76b25f44fd19ba3a88f85f00b3ac7329ffd604075db0fbbeda87f6c794491/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253545382e302d626c7565)](https://camo.githubusercontent.com/29e76b25f44fd19ba3a88f85f00b3ac7329ffd604075db0fbbeda87f6c794491/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253545382e302d626c7565)[![License](https://camo.githubusercontent.com/cf346829d0cb6bde50d61995b91ca907cbb255eba492cf2b4041c9866f66cf43/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6a65616e6b6f6666693534332f6b6a6f732d6c61726176656c2d706172616d657465722d6d6170706572)](https://camo.githubusercontent.com/cf346829d0cb6bde50d61995b91ca907cbb255eba492cf2b4041c9866f66cf43/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6a65616e6b6f6666693534332f6b6a6f732d6c61726176656c2d706172616d657465722d6d6170706572)

🌐 Multilanguage | Multilingual
------------------------------

[](#-multilanguage--multilingual)

- 🇫🇷 [French Version](README.fr.md)
- 🇬🇧 [English Version](README.md)

🇬🇧 English
----------

[](#-english)

Kjos Laravel Parameter Mapper
=============================

[](#kjos-laravel-parameter-mapper)

A Laravel package that allows you to dynamically map GET and POST parameters sent by the client to your application's backend keys, and vice versa. Useful for hiding the actual field names from the user or for standardizing your APIs.

---

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

[](#installation)

For Laravel 12 or higher:

```
composer require kjos/kjos-laravel-parameter-mapper
```

Publish the configuration
-------------------------

[](#publish-the-configuration)

```
php artisan vendor:publish --tag=parametermap
```

Configuration
-------------

[](#configuration)

```
return [
    'map' => [
        // frontParam => backendParam
        'id_ur'   => 'user_id',
        'name_lt' => 'last_name',
        'ae'      => 'age',
    ],

    // Valeurs spécifiques à mapper (ex: search=id_us => search=user_id)
    'values-to-map' => [
          'search',
    ],

    // Mapper les clés dans des tableaux (ex: sort[id_us] => sort[user_id])
        'array-keys-to-map' => [
            'sort',
        ],

        'reject-knowns' => true,
];
```

\##Middleware

```
use Kjos\ParameterMapper\Middleware\MapRequestParameters;
Route::middleware([MapRequestParameters::class])
```

Class `ParameterMapper`
-----------------------

[](#class-parametermapper)

```
use Kjos\ParameterMapper\Support\ParameterMapper;

// Map front -> back
$mapped = ParameterMapper::apply([
'id_ur' => 1,
'name_lt' => 'Koffi',
'ae' => 10,
'sort' => ['id_ur' => 'asc'],
'search' => 'id_ur',
]);

// Map back -> front
$frontend = ParameterMapper::reverse([
'user_id' => 1,
'last_name' => 'Koffi',
'age' => 10,
'sort' => ['user_id' => 'asc'],
'search' => 'user_id',
]);
```

Use in Factories
----------------

[](#use-in-factories)

```
$datas = ParameterMapper::reverse([
'user_id' => 1,
'last_name' => 'Koffi',
'age' => 10,
]);
```

Becomes:

```
[
'id_ur' => 1,

'name_lt' => 'Koffi',

'ae' => 10,

]
```

API Example
-----------

[](#api-example)

Request:

```
GET /api/admins?search=id_us&sort[id_us]=asc

```

Automatically transformed into:

```
[
'search' => 'user_id',

'sort' => ['user_id' => 'asc']
];
```

🔒 reject-knowns — Reject internal parameters
--------------------------------------------

[](#-reject-knowns--reject-internal-parameters)

The reject-knowns parameter allows you to automatically reject any request that contains a parameter corresponding to an internal backend key.

Purpose

To prevent users from directly sending backend (internal) field names that are normally hidden behind the front-end map.

For example, if you have this map:

```
'map' => [
'id_ur' => 'user_id',
'name_lt' => 'last_name',
'ae' => 'age',
],
```

and reject-knowns is enabled:

```
'reject-knowns' => true,
```

Then a request like:

`GET /api/admins?user_id=1`will be rejected with an HTTP 404 error, because user\_id is an internal parameter and should not be exposed on the front end.

### Comment to enable it

[](#comment-to-enable-it)

In the configuration file config/parameter-mapper.php

```
