Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\system\Controller;
|
Chris@0
|
4
|
Chris@0
|
5 use Symfony\Component\DependencyInjection\ContainerInterface;
|
Chris@0
|
6 use Symfony\Component\HttpFoundation\Response;
|
Chris@0
|
7 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
|
Chris@0
|
8 use Drupal\system\SystemManager;
|
Chris@0
|
9
|
Chris@0
|
10 /**
|
Chris@0
|
11 * Returns responses for System Info routes.
|
Chris@0
|
12 */
|
Chris@0
|
13 class SystemInfoController implements ContainerInjectionInterface {
|
Chris@0
|
14
|
Chris@0
|
15 /**
|
Chris@0
|
16 * System Manager Service.
|
Chris@0
|
17 *
|
Chris@0
|
18 * @var \Drupal\system\SystemManager
|
Chris@0
|
19 */
|
Chris@0
|
20 protected $systemManager;
|
Chris@0
|
21
|
Chris@0
|
22 /**
|
Chris@0
|
23 * {@inheritdoc}
|
Chris@0
|
24 */
|
Chris@0
|
25 public static function create(ContainerInterface $container) {
|
Chris@0
|
26 return new static(
|
Chris@0
|
27 $container->get('system.manager')
|
Chris@0
|
28 );
|
Chris@0
|
29 }
|
Chris@0
|
30
|
Chris@0
|
31 /**
|
Chris@0
|
32 * Constructs a SystemInfoController object.
|
Chris@0
|
33 *
|
Chris@0
|
34 * @param \Drupal\system\SystemManager $systemManager
|
Chris@0
|
35 * System manager service.
|
Chris@0
|
36 */
|
Chris@0
|
37 public function __construct(SystemManager $systemManager) {
|
Chris@0
|
38 $this->systemManager = $systemManager;
|
Chris@0
|
39 }
|
Chris@0
|
40
|
Chris@0
|
41 /**
|
Chris@0
|
42 * Displays the site status report.
|
Chris@0
|
43 *
|
Chris@0
|
44 * @return array
|
Chris@0
|
45 * A render array containing a list of system requirements for the Drupal
|
Chris@0
|
46 * installation and whether this installation meets the requirements.
|
Chris@0
|
47 */
|
Chris@0
|
48 public function status() {
|
Chris@0
|
49 $requirements = $this->systemManager->listRequirements();
|
Chris@0
|
50 return ['#type' => 'status_report_page', '#requirements' => $requirements];
|
Chris@0
|
51 }
|
Chris@0
|
52
|
Chris@0
|
53 /**
|
Chris@0
|
54 * Returns the contents of phpinfo().
|
Chris@0
|
55 *
|
Chris@0
|
56 * @return \Symfony\Component\HttpFoundation\Response
|
Chris@0
|
57 * A response object to be sent to the client.
|
Chris@0
|
58 */
|
Chris@0
|
59 public function php() {
|
Chris@0
|
60 if (function_exists('phpinfo')) {
|
Chris@0
|
61 ob_start();
|
Chris@0
|
62 phpinfo();
|
Chris@0
|
63 $output = ob_get_clean();
|
Chris@0
|
64 }
|
Chris@0
|
65 else {
|
Chris@0
|
66 $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']);
|
Chris@0
|
67 }
|
Chris@0
|
68 return new Response($output);
|
Chris@0
|
69 }
|
Chris@0
|
70
|
Chris@0
|
71 }
|