PHP code example of teners / laravel-key-case

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,
    ];
}



return [
    /**
     * Response Key Case - Transform API response keys
     * Options: camel, snake, kebab, studly, lower, upper, ucfirst, ucwords, singular, plural, slug, title
     */
    'response_case' => env('RESPONSE_CASE', 'camel'),

    /**
     * Request Key Case - Transform incoming request keys
     * Options: camel, snake, kebab, studly, lower, upper, ucfirst, ucwords, singular, plural, slug, title
     */
    'request_case' => env('REQUEST_CASE', 'snake'),

    /**
     * Performance Settings
     */
    'max_depth' => env('KEY_CASE_MAX_DEPTH', 10),

    /**
     * Route Exclusions
     */
    'ignore' => [
        'health-check',
    ],

    'ignore_request' => [],
    'ignore_response' => [],
];



// 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
});
bash
php artisan vendor:publish --provider="Teners\LaravelKeyCase\LaravelKeyCaseServiceProvider" --tag="key-case-config"