diff --git a/app/modules/web/Controllers/Error/DatabaseConnectionController.php b/app/modules/web/Controllers/Error/DatabaseConnectionController.php new file mode 100644 index 00000000..02830421 --- /dev/null +++ b/app/modules/web/Controllers/Error/DatabaseConnectionController.php @@ -0,0 +1,53 @@ +. + */ + +namespace SP\Modules\Web\Controllers\Error; + + +use SP\Core\Exceptions\SPException; + +/** + * Class DatabaseConnectionController + */ +final class DatabaseConnectionController extends ErrorBase +{ + /** + * databaseConnectionAction + */ + public function databaseConnectionAction(): void + { + $this->layoutHelper->getPublicLayout('error-database'); + + $this->view->append( + 'errors', + [ + 'type' => SPException::CRITICAL, + 'description' => __('Unable to connect to DB'), + 'hint' => __('Please contact to the administrator'), + ] + ); + + $this->view(); + } +} \ No newline at end of file diff --git a/app/modules/web/Controllers/Error/DatabaseErrorController.php b/app/modules/web/Controllers/Error/DatabaseErrorController.php new file mode 100644 index 00000000..77569fed --- /dev/null +++ b/app/modules/web/Controllers/Error/DatabaseErrorController.php @@ -0,0 +1,53 @@ +. + */ + +namespace SP\Modules\Web\Controllers\Error; + + +use SP\Core\Exceptions\SPException; + +/** + * Class DatabaseErrorController + */ +final class DatabaseErrorController extends ErrorBase +{ + /** + * databaseErrorAction + */ + public function databaseErrorAction(): void + { + $this->layoutHelper->getPublicLayout('error-database'); + + $this->view->append( + 'errors', + [ + 'type' => SPException::CRITICAL, + 'description' => __('Error while checking the database'), + 'hint' => __('Please contact to the administrator'), + ] + ); + + $this->view(); + } +} \ No newline at end of file diff --git a/app/modules/web/Controllers/Error/ErrorBase.php b/app/modules/web/Controllers/Error/ErrorBase.php new file mode 100644 index 00000000..0ebce38e --- /dev/null +++ b/app/modules/web/Controllers/Error/ErrorBase.php @@ -0,0 +1,69 @@ +. + */ + +namespace SP\Modules\Web\Controllers\Error; + + +use SP\Core\Exceptions\FileNotFoundException; +use SP\Modules\Web\Controllers\Helpers\LayoutHelper; +use SP\Mvc\View\TemplateInterface; + +/** + * Class ErrorBase + */ +abstract class ErrorBase +{ + protected TemplateInterface $view; + protected LayoutHelper $layoutHelper; + + /** + * ErrorController constructor. + * + * @param \SP\Mvc\View\TemplateInterface $template + * @param \SP\Modules\Web\Controllers\Helpers\LayoutHelper $layoutHelper + */ + public function __construct(TemplateInterface $template, LayoutHelper $layoutHelper) + { + $this->view = $template; + $this->layoutHelper = $layoutHelper; + + $this->view->setBase('error'); + } + + /** + * Mostrar los datos de la plantilla + */ + final protected function view(): void + { + try { + echo $this->view->render(); + } catch (FileNotFoundException $e) { + processException($e); + + echo __($e->getMessage()); + } + + die(); + } +} \ No newline at end of file diff --git a/app/modules/web/Controllers/Error/IndexController.php b/app/modules/web/Controllers/Error/IndexController.php new file mode 100644 index 00000000..9974e7b8 --- /dev/null +++ b/app/modules/web/Controllers/Error/IndexController.php @@ -0,0 +1,42 @@ +. + */ + +namespace SP\Modules\Web\Controllers\Error; + +/** + * Class IndexController + * + * @package SP\Modules\Web\Controllers + */ +final class IndexController extends ErrorBase +{ + /** + * indexAction + */ + public function indexAction(): void + { + $this->layoutHelper->getPublicLayout('error'); + $this->view(); + } +} \ No newline at end of file diff --git a/app/modules/web/Controllers/Error/MaintenanceErrorController.php b/app/modules/web/Controllers/Error/MaintenanceErrorController.php new file mode 100644 index 00000000..65f3a5ff --- /dev/null +++ b/app/modules/web/Controllers/Error/MaintenanceErrorController.php @@ -0,0 +1,50 @@ +. + */ + +namespace SP\Modules\Web\Controllers\Error; + + +use SP\Core\Exceptions\SPException; + +final class MaintenanceErrorController extends ErrorBase +{ + /** + * maintenanceErrorAction + */ + public function maintenanceErrorAction(): void + { + $this->layoutHelper->getPublicLayout('error-maintenance'); + + $this->view->append( + 'errors', + [ + 'type' => SPException::WARNING, + 'description' => __('Application on maintenance'), + 'hint' => __('It will be running shortly'), + ] + ); + + $this->view(); + } +} \ No newline at end of file diff --git a/app/modules/web/Controllers/ErrorController.php b/app/modules/web/Controllers/ErrorController.php deleted file mode 100644 index 2fd75dc6..00000000 --- a/app/modules/web/Controllers/ErrorController.php +++ /dev/null @@ -1,148 +0,0 @@ -. - */ - -namespace SP\Modules\Web\Controllers; - -use DI\Container; -use DI\DependencyException; -use DI\NotFoundException; -use Klein\Klein; -use SP\Core\Exceptions\FileNotFoundException; -use SP\Core\Exceptions\SPException; -use SP\Modules\Web\Controllers\Helpers\LayoutHelper; -use SP\Mvc\View\Template; -use SP\Mvc\View\TemplateInterface; - -/** - * Class ErrorController - * - * @package SP\Modules\Web\Controllers - */ -final class ErrorController -{ - protected TemplateInterface $view; - protected Klein $router; - protected LayoutHelper $layoutHelper; - - /** - * ErrorController constructor. - * - * @param Container $container - * @param string $actionName - * - * @throws DependencyException - * @throws NotFoundException - */ - public function __construct(Container $container, $actionName) - { - $this->router = $container->get(Klein::class); - - $this->view = $container->get(Template::class); - $this->view->setBase('error'); - - $this->layoutHelper = $container->get(LayoutHelper::class); - } - - /** - * indexAction - */ - public function indexAction(): void - { - $this->layoutHelper->getPublicLayout('error'); - $this->view(); - } - - /** - * Mostrar los datos de la plantilla - */ - protected function view(): void - { - try { - echo $this->view->render(); - } catch (FileNotFoundException $e) { - processException($e); - - echo __($e->getMessage()); - } - - die(); - } - - /** - * maintenanceErrorAction - */ - public function maintenanceErrorAction(): void - { - $this->layoutHelper->getPublicLayout('error-maintenance'); - - $this->view->append( - 'errors', - [ - 'type' => SPException::WARNING, - 'description' => __('Application on maintenance'), - 'hint' => __('It will be running shortly'), - ] - ); - - $this->view(); - } - - /** - * databaseErrorAction - */ - public function databaseErrorAction(): void - { - $this->layoutHelper->getPublicLayout('error-database'); - - $this->view->append( - 'errors', - [ - 'type' => SPException::CRITICAL, - 'description' => __('Error while checking the database'), - 'hint' => __('Please contact to the administrator'), - ] - ); - - $this->view(); - } - - /** - * databaseConnectionAction - */ - public function databaseConnectionAction(): void - { - $this->layoutHelper->getPublicLayout('error-database'); - - $this->view->append( - 'errors', - [ - 'type' => SPException::CRITICAL, - 'description' => __('Unable to connect to DB'), - 'hint' => __('Please contact to the administrator'), - ] - ); - - $this->view(); - } -} \ No newline at end of file