1. Go to this page and download the library: Download ldiebold/isolate 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/ */
use Ldiebold\Isolate\Facades\Isolate;
// Add a port resource (e.g. Vite's dev server). Pass an array of keys to write
// several env keys for the same port.
Isolate::port('VITE_PORT', 8200, ['browser_facing' => true]);
// Add a per-instance name resource (prefix, queue name, etc.).
Isolate::name('PULSE_PREFIX');
// Compute a derived env value at runtime (closure or class-string DerivedResolver).
Isolate::derive('PUSHER_APP_CLUSTER', fn (array $env, int $n) => 'eu-'.$n);
// Run a callback after the plan is applied, or after a database is created / dropped,
// or after a Redis keyspace is flushed (isolate:teardown).
Isolate::after(fn ($plan, $result) => /* ... */);
Isolate::afterDatabaseCreated(fn ($result, $plan) => /* ... */);
Isolate::afterDatabaseDropped(fn ($result, $plan) => /* ... */); // isolate:teardown; $result is a DropResult
Isolate::afterPrefixFlushed(fn ($result, $plan) => /* ... */); // isolate:teardown; $result is a FlushResult ($result->keyCount)
// Fire a restart hook with `isolate --restart` (closure OR cache-safe class-string).
Isolate::restartUsing(RestartHorizon::class);
use Ldiebold\Isolate\Facades\Isolate;
use Ldiebold\Isolate\IsolationRequest;
$result = Isolate::run(IsolationRequest::auto()); // or ::for(3) / ::reset()
$result->number; // the chosen instance number
$result->plan->envMap; // every env value that was written
$result->warnings; // non-fatal conflict / degradation messages