X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FStatistics.php;h=514f10bb73d768d836fb576d06d29a5c6863b2d0;hb=98aed4dde31234883bb3eb5f77143159641a8ea5;hp=3e64828e7b64b3dfe33897d9dad3dd85e703b4f7;hpb=f1e7d97b8cae93e1c77f5a5085880409b01fcdbe;p=friendica.git diff --git a/src/Module/Statistics.php b/src/Module/Statistics.php index 3e64828e7b..514f10bb73 100644 --- a/src/Module/Statistics.php +++ b/src/Module/Statistics.php @@ -1,30 +1,60 @@ . + * + */ namespace Friendica\Module; +use Friendica\App; use Friendica\BaseModule; use Friendica\Core\Addon; +use Friendica\Core\Config\Capability\IManageConfigValues; +use Friendica\Core\KeyValueStorage\Capabilities\IManageKeyValuePairs; +use Friendica\Core\L10n; use Friendica\Core\System; +use Friendica\Network\HTTPException\NotFoundException; +use Friendica\Util\Profiler; +use Psr\Log\LoggerInterface; class Statistics extends BaseModule { - public static function init() + /** @var IManageConfigValues */ + protected $config; + /** @var IManageKeyValuePairs */ + protected $keyValue; + + public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, IManageConfigValues $config, IManageKeyValuePairs $keyValue, Response $response, array $server, array $parameters = []) { - $config = self::getApp()->getConfig(); + parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); - if (!$config->get("system", "nodeinfo")) { - throw new \Friendica\Network\HTTPException\NotFoundException(); + $this->config = $config; + $this->keyValue = $keyValue; + if (!$this->config->get("system", "nodeinfo")) { + throw new NotFoundException(); } } - public static function rawContent() + protected function rawContent(array $request = []) { - $config = self::getApp()->getConfig(); - $logger = self::getApp()->getLogger(); - $registration_open = - intval($config->get('config', 'register_policy')) !== Register::CLOSED - && !$config->get('config', 'invitation_only'); + intval($this->config->get('config', 'register_policy')) !== Register::CLOSED + && !$this->config->get('config', 'invitation_only'); /// @todo mark the "service" addons and load them dynamically here $services = [ @@ -41,20 +71,18 @@ class Statistics extends BaseModule ]; $statistics = array_merge([ - 'name' => $config->get('config', 'sitename'), - 'network' => FRIENDICA_PLATFORM, - 'version' => FRIENDICA_VERSION . '-' . DB_UPDATE_VERSION, + 'name' => $this->config->get('config', 'sitename'), + 'network' => App::PLATFORM, + 'version' => App::VERSION . '-' . DB_UPDATE_VERSION, 'registrations_open' => $registration_open, - 'total_users' => $config->get('nodeinfo', 'total_users'), - 'active_users_halfyear' => $config->get('nodeinfo', 'active_users_halfyear'), - 'active_users_monthly' => $config->get('nodeinfo', 'active_users_monthly'), - 'local_posts' => $config->get('nodeinfo', 'local_posts'), + 'total_users' => $this->keyValue->get('nodeinfo_total_users'), + 'active_users_halfyear' => $this->keyValue->get('nodeinfo_active_users_halfyear'), + 'active_users_monthly' => $this->keyValue->get('nodeinfo_active_users_monthly'), + 'local_posts' => $this->keyValue->get('nodeinfo_local_posts'), 'services' => $services, ], $services); - header("Content-Type: application/json"); - echo json_encode($statistics, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); - $logger->debug("statistics.", ['statistics' => $statistics]); - exit(); + $this->logger->debug("statistics.", ['statistics' => $statistics]); + System::jsonExit($statistics); } }