Run a callback, or an accessible method of a class by giving the parameters if require

v1.0 2018-04-26 15:32 UTC


Runner is a simple library that run dynamically a callback function, or an accessible method of a class by giving the parameters if require.

How to use

It creates an array with the following keys:

  • "callback" to indicate a callback function
  • "class" to indicate the name of a class
  • "action" to indicate the name of a method belonging to the instance of the class name indicate as the value for the key "class"
  • "params" to indicate the parameters to call


Calling a function without parameters

$parameters = [];
$parameters['callback'] = function () {
    echo 'Function Body';
$runner = new \Runner\Engine\Runner($parameters);

Function with parameters

$parameters = [];
$parameters['callback'] = function ($foo) {
    echo 'Function Body';
$parameters['params'] = ['foo']

To run, just do it, you have of course in the case of a callback function with the number of parameters given to this function is equal to the number of parameters in the table indexed by key 'params', otherwise throw exception

$runner = new \Runner\Engine\Runner();

or simply do


You can add objects to inject as default parameters when create runner instance as follow

if you want to use the default configuration

$runner =  Runner\Engine\Runner::createForm(new Class\To\Inject());


$runner =  Runner\Engine\Runner::create('path/to/ini_or_php/file', new Class\To\Inject());

this does not work for callback calls

Class Method

Same as above, except that instead of a given function of recalls, we give a class name and a method name, if the method exists, it will be called if an exception is thrown

$parameters = [];
$parameters['class'] = '\ClassNamespace\FakeClass'
$parameters['action']) = 'find';
$parameters['params'] = ['id']


namespace ClassNamespace
class FakeClass
    public function find($id)
        echo "I found the element matching Id : $id"


Use custom class defaults or callback

You specifies the value (class or callback methods previously created) of the keys defaults_r or callback_r in a INI file, after the file path is given as the second constructor parameter to the Runner class.

$runner = new \Runner\Engine\Runner(path/to/ini_or_php/file);

Other way to create instance

$runner = \Runner\Engine\Runner::create(path/to/ini_or_php/file);


$runner = \Runner\Engine\Runner::singleton(path/to/ini_or_php/file);

We can pass a table instead ini or php file

INI file

default_r = \Custom\DefaultsRunner\FakeClass
callback_r = \Custom\CallbackRunner\FakeClass

PHP file


return [
    'default_r' => '\Custom\DefaultsRunner\FakeClass'
    'callback_r' => '\Custom\CallbackRunner\FakeClass'