Mercurial > hg > isophonics-drupal-site
diff core/modules/system/src/Controller/SystemInfoController.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/system/src/Controller/SystemInfoController.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,71 @@ +<?php + +namespace Drupal\system\Controller; + +use Symfony\Component\DependencyInjection\ContainerInterface; +use Symfony\Component\HttpFoundation\Response; +use Drupal\Core\DependencyInjection\ContainerInjectionInterface; +use Drupal\system\SystemManager; + +/** + * Returns responses for System Info routes. + */ +class SystemInfoController implements ContainerInjectionInterface { + + /** + * System Manager Service. + * + * @var \Drupal\system\SystemManager + */ + protected $systemManager; + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static( + $container->get('system.manager') + ); + } + + /** + * Constructs a SystemInfoController object. + * + * @param \Drupal\system\SystemManager $systemManager + * System manager service. + */ + public function __construct(SystemManager $systemManager) { + $this->systemManager = $systemManager; + } + + /** + * Displays the site status report. + * + * @return array + * A render array containing a list of system requirements for the Drupal + * installation and whether this installation meets the requirements. + */ + public function status() { + $requirements = $this->systemManager->listRequirements(); + return ['#type' => 'status_report_page', '#requirements' => $requirements]; + } + + /** + * Returns the contents of phpinfo(). + * + * @return \Symfony\Component\HttpFoundation\Response + * A response object to be sent to the client. + */ + public function php() { + if (function_exists('phpinfo')) { + ob_start(); + phpinfo(); + $output = ob_get_clean(); + } + else { + $output = t('The phpinfo() function has been disabled for security reasons. For more information, visit <a href=":phpinfo">Enabling and disabling phpinfo()</a> handbook page.', [':phpinfo' => 'https://www.drupal.org/node/243993']); + } + return new Response($output); + } + +}