From 0841c57c6ae2f3732d571d7ec65ac09ec479a470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20D?= Date: Sat, 11 Jun 2022 21:11:29 +0200 Subject: [PATCH] refactor: [WIP] Migrate error controller. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rubén D --- .../Error/DatabaseConnectionController.php | 53 +++++++ .../Error/DatabaseErrorController.php | 53 +++++++ .../web/Controllers/Error/ErrorBase.php | 69 ++++++++ .../web/Controllers/Error/IndexController.php | 42 +++++ .../Error/MaintenanceErrorController.php | 50 ++++++ .../web/Controllers/ErrorController.php | 148 ------------------ 6 files changed, 267 insertions(+), 148 deletions(-) create mode 100644 app/modules/web/Controllers/Error/DatabaseConnectionController.php create mode 100644 app/modules/web/Controllers/Error/DatabaseErrorController.php create mode 100644 app/modules/web/Controllers/Error/ErrorBase.php create mode 100644 app/modules/web/Controllers/Error/IndexController.php create mode 100644 app/modules/web/Controllers/Error/MaintenanceErrorController.php delete mode 100644 app/modules/web/Controllers/ErrorController.php 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