PHP code example of chr15k / laravel-legacy-bridge
1. Go to this page and download the library: Download chr15k/laravel-legacy-bridge 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/ */
chr15k / laravel-legacy-bridge example snippets
->withMiddleware(function (Middleware $middleware) {
$middleware->web(append: [
\Chr15k\LegacyBridge\Http\Middleware\LegacySessionBridge::class,
]);
})
use Chr15k\LegacyBridge\Events\LegacySessionBridged;
use Chr15k\LegacyBridge\Events\LegacySessionBridgeFailed;
use Chr15k\LegacyBridge\Events\LegacySessionBridgeError;
use Chr15k\LegacyBridge\Enums\BridgeFailureReason;
// Successful bridge
LegacySessionBridged::class
// $event->userId, $event->sessionId, $event->payload
// Known failure
LegacySessionBridgeFailed::class
// $event->reason (BridgeFailureReason enum), $event->context (BridgeContext)
// Unexpected exception
LegacySessionBridgeError::class
// $event->exception (Throwable)
$event->context->cookieName // the cookie name
$event->context->cookieValue // raw cookie value
$event->context->sessionId // resolved session ID (if reached)
$event->context->payload // decoded payload (if reached)
$event->context->userId // resolved user ID (if reached)
$event->context->requestContext // ['ip', 'path', 'method', 'user_agent']
// config/legacy-bridge.php
// Auto: tries known patterns (default)
'resolver' => ['driver' => 'auto'],
// Key: explicit dot-notation path
'resolver' => ['driver' => 'key', 'key' => 'user_id'],
// Custom: your own implementation
'resolver' => ['driver' => 'custom', 'class' => \App\Bridge\LegacyUserResolver::class],
// config/legacy-bridge.php
return [
'cookie' => [
'name' => env('LEGACY_BRIDGE_COOKIE', 'PHPSESSID'),
'encryption' => env('LEGACY_BRIDGE_COOKIE_ENCRYPTION', 'none'), // 'none' | 'laravel'
],
'database' => [
'connection' => env('LEGACY_BRIDGE_DB_CONNECTION', 'legacy'),
'table' => env('LEGACY_BRIDGE_SESSION_TABLE', 'sessions'),
'columns' => [
'id' => env('LEGACY_BRIDGE_SESSION_TABLE_COL_ID', 'id'),
'payload' => env('LEGACY_BRIDGE_SESSION_TABLE_COL_PAYLOAD', 'payload'),
'time' => env('LEGACY_BRIDGE_SESSION_TABLE_COL_TIME', 'last_activity'),
],
'time' => [
'semantics' => env('LEGACY_BRIDGE_SESSION_TIME_SEMANTICS', 'activity'), // 'activity' | 'expires'
'format' => env('LEGACY_BRIDGE_SESSION_TIME_FORMAT', 'timestamp'), // 'timestamp' | 'datetime'
'timezone' => env('LEGACY_BRIDGE_SESSION_TIME_TIMEZONE', 'UTC'),
],
],
'lifetime' => env('LEGACY_BRIDGE_LIFETIME', 120),
'payload' => [
'format' => env('LEGACY_BRIDGE_PAYLOAD_FORMAT', 'auto'),
],
'app_key' => env('LEGACY_BRIDGE_APP_KEY'),
'resolver' => [
'driver' => env('LEGACY_BRIDGE_RESOLVER_DRIVER', 'auto'),
'key' => env('LEGACY_BRIDGE_RESOLVER_KEY', 'user_id'),
'class' => env('LEGACY_BRIDGE_RESOLVER_CLASS'),
],
'context' => [
'carry_keys' => [],
'flash' => false,
],
'invalidation' => env('LEGACY_BRIDGE_INVALIDATION_STRATEGY', 'after_write'), // 'after_write' | 'immediate' | 'never'
];
->withMiddleware(function (Middleware $middleware): void {
$middleware->throttleApi(); // or a custom limiter
})
bash
php artisan legacy-bridge:install
bash
php artisan legacy-bridge:verify
php artisan legacy-bridge:verify --session-id=a_real_session_id