1. Go to this page and download the library: Download teners/laravel-key-case 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/ */
teners / laravel-key-case example snippets
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
// Apply to all API routes
$middleware->api(append: [
\Teners\LaravelKeyCase\Http\Middleware\TransformResponseMiddleware::class,
\Teners\LaravelKeyCase\Http\Middleware\TransformRequestMiddleware::class,
]);
// Or register aliases for individual routes
$middleware->alias([
'transform-request' => \Teners\LaravelKeyCase\Http\Middleware\TransformRequestMiddleware::class,
'transform-response' => \Teners\LaravelKeyCase\Http\Middleware\TransformResponseMiddleware::class,
]);
})
->withExceptions(function (Exceptions $exceptions) {
//
})->create();
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
protected $middlewareGroups = [
'web' => [
// ... other middleware
],
'api' => [
// ... other middleware
\Teners\LaravelKeyCase\Http\Middleware\TransformResponseMiddleware::class,
\Teners\LaravelKeyCase\Http\Middleware\TransformRequestMiddleware::class,
],
];
// For individual route usage
protected $middlewareAliases = [
// ... other aliases
'transform-request' => \Teners\LaravelKeyCase\Http\Middleware\TransformRequestMiddleware::class,
'transform-response' => \Teners\LaravelKeyCase\Http\Middleware\TransformResponseMiddleware::class,
];
}
// Automatically received as snake_case
public function store(Request $request)
{
$validated = $request->validate([
'first_name' => 'son([
'user_id' => $user->id,
'created_at' => $user->created_at,
]);
// Automatically transformed to camelCase: {"userId": 1, "createdAt": "2024-01-01T12:00:00Z"}
}
// Apply to specific routes
Route::middleware(['transform-response'])->group(function () {
Route::get('/users', [UserController::class, 'index']);
Route::post('/users', [UserController::class, 'store']);
});
// Skip transformation for specific routes
Route::get('/legacy-api/data', function () {
// This route will be ignored
});