| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- namespace ThurData\Servers\KerioEmail\Core\App;
- use \ThurData\Servers\KerioEmail\Core\App\Controllers\AppControllers\Http;
- use \ThurData\Servers\KerioEmail\Core\App\Controllers\AppControllers\Addon;
- use \ThurData\Servers\KerioEmail\Core\App\Controllers\AppControllers\Api;
- use \ThurData\Servers\KerioEmail\Core\ServiceLocator;
- use function \ThurData\Servers\KerioEmail\Core\Helper\di;
- class Application
- {
- public function run($callerName = null, $params = null)
- {
- try
- {
- $this->setWhmcsParams($params);
-
- $controller = $this->getControllerClass($callerName);
- $controllerInstance = ServiceLocator::call($controller);
- $result = $controllerInstance->runController($callerName, $params);
- logModuleCall(
- 'kerioEmail',
- __FUNCTION__,
- $params,
- 'Debug',
- $result
- );
-
- return $result;
- }
- catch (\Exception $exc)
- {
- $errorPage = ServiceLocator::call(Controllers\Instances\Http\ErrorPage::class);
- $params['mgErrorDetails'] = $exc;
- $result = $errorPage->execute($params);
-
- return $result;
- }
- }
- /**
- * Saves provided WHMCS params to WhmcsParams service
- * @param type array
- */
- protected function setWhmcsParams($params)
- {
- $whmcsParams = di('whmcsParams');
- $whmcsParams->setParams($params);
- }
-
- public function getControllerClass($callerName = null)
- {
- $functionName = str_replace($this->getModuleName() . '_', '', $callerName);
- switch ($functionName)
- {
- //HTTP controllers
- case 'output':
- return Http::class;
- case 'clientarea':
- return Http::class;
- //API controller
- case 'api':
- return Api::class;
- //Addon controllers
- default:
- return Addon::class;
- }
- }
- public function getModuleName ()
- {
- return 'KerioEmail';
- }
- }
|