&$c) { if(isset($c['command'])) { $output=null; $retval=null; exec($c['command'], $output, $retval); $output = implode("\n", $output); } elseif(isset($c['httpurl'])) { $client = new GuzzleHttp\Client(); $res = $client->get($c['httpurl']); $output = $res->getBody()->getContents(); } elseif(isset($c['httpresponsetime'])) { $client = new GuzzleHttp\Client(); $output = NULL; $res = $client->request('GET', $c['httpresponsetime'], [ 'on_stats' => function (GuzzleHttp\TransferStats $stats) use (&$output) { $output = $stats->getTransferTime(); }]); } if(isset($c['jsonelem'])) { $c['value'] = getArrayValue($c['jsonelem'], json_decode($output, true)); } else { $c['value'] = $output; } } $loader = new \Twig\Loader\FilesystemLoader('templates'); $twig = new \Twig\Environment($loader, [ 'cache' => 'twig_cache', ]); echo $twig->render('metrics.twig', ['config' => $config]); } function getArrayValue($elem, $array) { $elem = explode('.', $elem); $new_array = $array; foreach ($elem as $i) { $new_array = $new_array[$i]; } return $new_array; }