. * */ namespace Vvveb\Controller\Tools; use function Vvveb\__; use Vvveb\Controller\Base; use Vvveb\System\Event; use Vvveb\System\Media\Image; class SystemInfo extends Base { function index() { $database = DB_ENGINE; if (DB_ENGINE == 'mysqli') { $database .= ' | ' . sprintf(__('Client library version: %s'), mysqli_get_client_info()); $database .= ' | ' . sprintf(__('Server version: %s'), \Vvveb\System\Db::getInstance()->info()); } else { $info = \Vvveb\System\Db::getInstance()->info(); if (is_array($info)) { $str = ''; foreach ($info as $key => $value) { $str .= " $key = $value | "; } $info = $str; } $database .= ' | ' . sprintf(__('Server version: %s'), $info); } (extension_loaded('imagick') && $imageLibrary = 'imagick') || (extension_loaded('gd') && $imageLibrary = 'gd') || ($imageLibrary = 'mockup (Imagick or GD not enabled!)'); $objectcache = \Vvveb\getConfig('app.cache.driver'); $objectcache .= ($objectcache != 'file' && ! extension_loaded($objectcache)) ? ' extension not available!' : ''; $info = [ 'general' => [ __('Vvveb version') => V_VERSION, __('Admin path') => \Vvveb\adminPath(), __('PHP version') => phpversion() . ' | ' . php_sapi_name(), __('Server') => $_SERVER['SERVER_SOFTWARE'] ?? '', __('OS version') => php_uname(), __('Database driver & version') => $database, __('PHP time limit') => ini_get('max_execution_time'), __('PHP memory limit') => ini_get('memory_limit'), __('Max input time') => ini_get('max_input_time'), __('Upload max filesize') => ini_get('upload_max_filesize'), __('PHP post max size') => ini_get('post_max_size'), __('Extensions') => implode(' ', get_loaded_extensions()), __('Page cache') => (defined('PAGE_CACHE') && PAGE_CACHE) ? __('enabled') : __('disabled'), __('Object cache') => $objectcache, __('Email Driver') => \Vvveb\getConfig('app.email.driver'), __('Session Driver') => \Vvveb\getConfig('app.session.driver'), __('Debug') => DEBUG ? __('enabled') : __('disabled'), __('Sql changes check') => SQL_CHECK ? __('enabled') : __('disabled'), __('Image library') => $imageLibrary, __('Image formats') => implode(' ', Image::formats()), 'Rest API' => REST ? __('enabled') : __('disabled'), 'GraphQL' => GRAPHQL ? __('enabled') : __('disabled'), ], 'server' => [ __('Document root') => $_SERVER['DOCUMENT_ROOT'] ?? '', __('Public path') => PUBLIC_PATH ?? '', ], ]; foreach ($_SERVER as $key => $value) { $key = __(\Vvveb\humanReadable(strtolower($key))); $info['server'][$key] = $value; } list($info) = Event::trigger(__CLASS__, __FUNCTION__, $info); $this->view->info = $info; if (isset($this->request->get['phpinfo'])) { ob_start(); phpinfo(); $php = ob_get_contents(); ob_end_clean(); $php = preg_replace('@^.+?
|
@ms', '', $php); $php = preg_replace('@@ms', '
', $php); $php = preg_replace('@

(.+?)

@ms', '

\1

', $php); $this->view->phpinfo = $php; } } }