PHP code example of mostafaaminflakes / dual-optimus
1. Go to this page and download the library: Download mostafaaminflakes/dual-optimus 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/ */
mostafaaminflakes / dual-optimus example snippets
'providers' => [
MostafaAminFlakes\DualOptimus\DualOptimusServiceProvider::class,
],
'aliases' => [
'DualOptimus' => MostafaAminFlakes\DualOptimus\Facades\DualOptimus::class,
],
return [
'default' => 'main',
'connections' => [
'main' => [
'prime' => env('DUAL_OPTIMUS_PRIME_64', 9223372036854775783),
'inverse' => env('DUAL_OPTIMUS_INVERSE_64', 9223372036854775783),
'random' => env('DUAL_OPTIMUS_RANDOM_64', 4611686018427387904),
'size' => 64,
],
'legacy' => [
'prime' => env('DUAL_OPTIMUS_PRIME_32', 1580030173),
'inverse' => env('DUAL_OPTIMUS_INVERSE_32', 59260789),
'random' => env('DUAL_OPTIMUS_RANDOM_32', 1163945558),
'size' => 32,
],
],
];
use MostafaAminFlakes\DualOptimus\Facades\DualOptimus;
// Automatic bit-size detection
$encoded = DualOptimus::encode(123); // Uses 32-bit (legacy connection)
$decoded = DualOptimus::decode($encoded); // Returns: 123
// Large values automatically use 64-bit
$bigEncoded = DualOptimus::encode(9876543210); // Uses 64-bit (main connection)
$bigDecoded = DualOptimus::decode($bigEncoded); // Returns: 9876543210
// Force 64-bit encoding for any value
$encoded64 = DualOptimus::encode64(123);
$decoded64 = DualOptimus::decode64($encoded64);
// Use specific connections
$mainConnection = DualOptimus::connection('main'); // 64-bit
$legacyConnection = DualOptimus::connection('legacy'); // 32-bit
$mainEncoded = $mainConnection->encode(123);
$legacyEncoded = $legacyConnection->encode(123);
// List available connections
$connections = DualOptimus::getConnections(); // ['main', 'legacy']
$manager = app('dual-optimus');
// Use default connection
$encoded = $manager->encode(123);
$decoded = $manager->decode($encoded);
// Get specific connection
$connection = $manager->connection('main');
$encoded = $connection->encode(123);
// Access the Jenssegers\Optimus instance for 32-bit operations
$optimus32 = DualOptimus::getOptimus32();
$encoded = $optimus32->encode(123);
// Use Optimus utilities
$prime = \Jenssegers\Optimus\Optimus::generateRandomPrime();
$inverse = \Jenssegers\Optimus\Optimus::calculateInverse($prime);
// Before (Jenssegers\Optimus)
$optimus = new \Jenssegers\Optimus\Optimus($prime, $inverse, $random);
$encoded = $optimus->encode(123);
// After (Dual Optimus) - same result!
$encoded = DualOptimus::encode(123);
// Access original Optimus if needed
$originalOptimus = DualOptimus::getOptimus32();
bash
php artisan vendor:publish --provider="MostafaAminFlakes\DualOptimus\DualOptimusServiceProvider"