<?php
class Methods {
public function doSomething(){
echo 'Did something';
}
}
class Router {
public $methods;
public function __construct($methods){
$this->methods = $methods;
}
public function execute($fn){
return call_user_func($fn->bindTo($this));
}
}
$router = new Router(new Methods);
$router->execute(function(){
echo 'Running the closure';
$this->methods->doSomething();
});
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Running the closureDid something