. */ namespace Volkszaehler\Controller; use Volkszaehler\Model; use Volkszaehler\Util; use Volkszaehler\View; /** * Capabilities controller * * @author Steffen Vogel * @package default */ class CapabilitiesController extends Controller { /** * @todo * @param string $capabilities * @param string $sub */ public function get($section = NULL) { $capabilities = array(); if (is_null($section) || $section == 'configuration') { $configuration = array( 'precission' => View\View::PRECISSION, 'database' => Util\Configuration::read('db.driver'), 'debug' => Util\Configuration::read('debug'), 'devmode' => Util\Configuration::read('devmode') ); $capabilities['configuration'] = $configuration; } if (is_null($section) || $section == 'statistics') { // TODO database statistics $statistics = array(); if ($load = Util\Debug::getLoadAvg()) $statistics['load'] = $load; if ($uptime = Util\Debug::getUptime()) $statistics['uptime'] = $uptime*1000; if ($commit = Util\Debug::getCurrentCommit()) $statistics['commit-hash'] = $commit; if ($version = phpversion()) $statistics['php-version'] = $version; $capabilities['statistics'] = $statistics; } if (is_null($section) || $section == 'formats') { $capabilities['formats'] = array_keys(\Volkszaehler\Router::$viewMapping); } if (is_null($section) || $section == 'contexts') { $capabilities['contexts'] = array_keys(\Volkszaehler\Router::$controllerMapping); } if (is_null($section) || $section == 'definitions') { if (!is_null($section)) { // only caching when we doesn't request dynamic informations $this->view->setCaching('expires', time()+2*7*24*60*60); // cache for 2 weeks } $capabilities['definitions']['entities'] = \Volkszaehler\Definition\EntityDefinition::getJSON(); $capabilities['definitions']['properties'] = \Volkszaehler\Definition\PropertyDefinition::getJSON(); } if (count($capabilities) == 0) { throw new \Exception('Invalid capability identifier!'); } return array('capabilities' => $capabilities); } } ?>