PHP code example of omegamvc / serializable-closure

1. Go to this page and download the library: Download omegamvc/serializable-closure 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/ */

    

omegamvc / serializable-closure example snippets


use Omega\SerializableClosure\SerializableClosure;

// Create a closure.
$closure = fn() => 'YOUR_STRING_HERE';

// Set a secret key for signing.
SerializableClosure::setSecretKey('secret');

// Serialize the closure
$serialized = serialize(new SerializableClosure($closure));

// Unserialize and get the closure.
$closure = unserialize($serialized)->getClosure();

// Print result.
echo $closure(); // Output: YOUR_STRING_HERE

use Omega\SerializableClosure\UnsignedSerializableClosure;

// Create a closure
$closure = fn($value) => strtoupper($value);

// Serialize the closure
$serialized = serialize(new UnsignedSerializableClosure($closure));

// Unserialize and get the closure
$unserialized = unserialize($serialized)->getClosure();

// Invoke the closure
echo $unserialized('hello'); // Output: HELLO

use Omega\SerializableClosure\SerializableClosure;

// Create a closure.
$closure = function() {
    $anonymousClass = new class {
        public function getMessage() : string {
            return "Helloo from anonymous class!";
        }
    };
    
    return $anonymousClass->getMessage();
};

// Serialize
$serialized = serialize(new SerializableClosure($closure));

// Unserialize
$unserializedClosure = unserialize($serialized);

//Invoke the closure
$result = $unserializedClosure();

echo $result; // Output: Helloo from anonymous class!

use Omega\SerializableClosure\UnsignedSerializableClosure;

// Create a closure
$anonymousFunction = function($name) {
    return "Hello, $name!";
};

// Create UnsignedSerializableClosure
$unsignedClosure = new UnsignedSerializableClosure($anonymousFunction);

 // Serialize
 $serialized = serialize($unsignedClosure);
 
 // Deserialize
 $unserialized = unserialize($serialized);
 
 // Invoke the closure
 $result = $unserialized("Jhon");
 
 // Echo the closure
 echo $result; // Output: Hello, Jhon!
sh
// File name: /etc/php/your_php_version/mods_available/xdebug.ini

zend_extension=xdebug.so
xdebug.show_exception_trace=0
xdebug.mode=coverage
zend_assertion=1
assert.exception=1