kjos/kjos-laravel-parameter-mapper 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

kjos/kjos-laravel-parameter-mapper

最新稳定版本:v1.3.4

Composer 安装命令:

composer require kjos/kjos-laravel-parameter-mapper

包简介

ParameterMapper tool for Laravel and other

README 文档

README

Packagist Version PHP License

🌐 Multilanguage | Multilingual

🇬🇧 English

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

For Laravel 12 or higher:

composer require kjos/kjos-laravel-parameter-mapper

Publish the configuration

php artisan vendor:publish --tag=parametermap

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

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

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

Becomes:

[
'id_ur' => 1,

'name_lt' => 'Koffi',

'ae' => 10,

]

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

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

In the configuration file config/parameter-mapper.php

<?php

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

// Reject known backend parameters
'reject-knowns' => true,
];

Map the response

In the configuration file config/parameter-mapper.php

<?php

return [
'map' => [
    ...
],

// Will map the response
'map-response' => true,
];

Schema

Schema

📁 Directory Structure

project-root/ 
├── CHANGELOG.md 
├── LICENSE 
├── README.md 
├── composer.json 
├── composer.lock 
├── config 
│ └── parameter-mapper.php 
├── grumphp.yml 
├── phpunit.xml 
├── pint.json 
├── schema.png 
├── src 
│ ├── Middleware 
│ ├── ParameterMapperServiceProvider.php 
│ └── Support 
├── tests 
│ ├── ExampleTest.php 
│ ├── Feature 
│ ├── Pest.php 
│ ├── TestCase.php 
│ └── Unit

👤 Author

Maintained by Jean Koffi

📄 License

MIT © kjos/kjos-laravel-parameter-mapper

🤝 Call for contributions

This project is open to contributions! Are you a developer, passionate about Laravel, or interested in multi-tenant architecture?

-Fork the project

  • Create a branch (klpm/my-feature)

  • Make a PR 🧪

统计信息

  • 总下载量: 13
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-17