TYPO3CMS  8
 All Classes Namespaces Files Functions Variables Pages
AbstractModule.php
Go to the documentation of this file.
1 <?php
2 namespace TYPO3\CMS\Backend\Module;
3 
4 /*
5  * This file is part of the TYPO3 CMS project.
6  *
7  * It is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU General Public License, either version 2
9  * of the License, or any later version.
10  *
11  * For the full copyright and license information, please read the
12  * LICENSE.txt file that was distributed with this source code.
13  *
14  * The TYPO3 project - inspiring people to share!
15  */
16 
17 use Psr\Http\Message\ResponseInterface;
18 use Psr\Http\Message\ServerRequestInterface;
21 
30 {
36  protected $moduleTemplate;
37 
41  public function __construct()
42  {
43  $this->moduleTemplate = GeneralUtility::makeInstance(ModuleTemplate::class);
44  }
45 
51  protected $request;
52 
63  public function processRequest(ServerRequestInterface $request, ResponseInterface $response)
64  {
65  $methodName = $request->getQueryParams()['action'] ?: 'index';
66  if (!is_callable([$this, $methodName])) {
67  throw new \InvalidArgumentException(
68  'The method "' . $methodName . '" is not callable within "' . get_class($this) . '".',
69  1442736343
70  );
71  }
72  return $this->{$methodName}($request, $response);
73  }
74 }
processRequest(ServerRequestInterface $request, ResponseInterface $response)
static makeInstance($className,...$constructorArguments)