Call a GET RESt endpoint from command line
Calling an endpoint from command line without actualy doing a HTTP Request is very simple.
Your endpoint must be implemented using any PHP framework that handles the HTTP request and response.
e.g.:
- byjg/restserver
 - slimphp/slim
 - zendframework/zend-expressive
 - symfony/http-foundation
 - etc.
 
Let's take a look at an example using the byjg/restserver framework, and with the controller file app.php:
<?php
require_once __DIR__ . '/../../vendor/autoload.php';
$routeDefinition = new RouteList();
$routeDefinition->addRoute(Route::get("/testclosure")
    ->withOutputProcessor(JsonOutputProcessor::class)
    ->withClosure(function ($response, $request) {
        $response->write([
            "result" => "OK",
            "arg" => $request->get("arg")
        ]);
    })
);
$restServer = new HttpRequestHandler();
$restServer->handle($routeDefinition);
The example above creates a simple REST endpoint /testclosure that returns a JSON with the argument arg.
To call this endpoint from the command line, you can use the following command:
daemonize call \
    /testclosure \
    --controller "app.php" \
    --http-get "arg=value1"