diff --git a/app/Controllers/Admin/MyLogController.php b/app/Controllers/Admin/MyLogController.php index bb238e3..2a0fb3b 100644 --- a/app/Controllers/Admin/MyLogController.php +++ b/app/Controllers/Admin/MyLogController.php @@ -17,8 +17,9 @@ class MyLogController extends AdminController { parent::initController($request, $response, $logger); $this->uri_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR; - $this->title = lang("MyLog.title"); - $this->helper = new Helper($this->getService()); + $this->class_path = $this->getService()->getClassPath(); + $this->title = lang("{$this->getService()->getClassPath()}.title"); + $this->helper = new Helper(); } final public function getService(): Service { diff --git a/app/Controllers/Admin/UserController.php b/app/Controllers/Admin/UserController.php index 78193b9..e0c9539 100644 --- a/app/Controllers/Admin/UserController.php +++ b/app/Controllers/Admin/UserController.php @@ -18,8 +18,9 @@ class UserController extends AdminController { parent::initController($request, $response, $logger); $this->uri_path .= strtolower($this->getService()->getClassName()) . '/'; + $this->class_path = $this->getService()->getClassPath(); $this->title = lang("{$this->getService()->getClassPath()}.title"); - $this->helper = new Helper($this->getService()); + $this->helper = new Helper(); } final public function getService(): Service { diff --git a/app/Controllers/Auth/GoogleController.php b/app/Controllers/Auth/GoogleController.php index 3456c12..7f8e1c2 100644 --- a/app/Controllers/Auth/GoogleController.php +++ b/app/Controllers/Auth/GoogleController.php @@ -17,8 +17,9 @@ class GoogleController extends AuthController { parent::initController($request, $response, $logger); $this->uri_path .= strtolower($this->getService()->getClassName()) . '/'; + $this->class_path = $this->getService()->getClassPath(); $this->title = lang("{$this->getService()->getClassPath()}.title");; - $this->helper = new Helper($this->getService()); + $this->helper = new Helper(); } final public function getService(): Service diff --git a/app/Controllers/Auth/LocalController.php b/app/Controllers/Auth/LocalController.php index 4b1e878..4872196 100644 --- a/app/Controllers/Auth/LocalController.php +++ b/app/Controllers/Auth/LocalController.php @@ -18,8 +18,9 @@ class LocalController extends AuthController { parent::initController($request, $response, $logger); $this->uri_path .= strtolower($this->getService()->getClassName()) . '/'; + $this->class_path = $this->getService()->getClassPath(); $this->title = lang("{$this->getService()->getClassPath()}.title");; - $this->helper = new Helper($this->getService()); + $this->helper = new Helper(); } final public function getService(): Service { diff --git a/app/Controllers/CommonController.php b/app/Controllers/CommonController.php index 58e0651..94875e9 100644 --- a/app/Controllers/CommonController.php +++ b/app/Controllers/CommonController.php @@ -4,24 +4,25 @@ namespace App\Controllers; use App\Controllers\BaseController; -use App\Libraries\LogCollector; -use App\Services\MyLogService; -use CodeIgniter\HTTP\DownloadResponse; - use CodeIgniter\HTTP\RedirectResponse; use CodeIgniter\HTTP\RequestInterface; - use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\Validation\Validation; + +use CodeIgniter\HTTP\DownloadResponse; use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Reader\Html; - use PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf; use Psr\Log\LoggerInterface; +use App\Libraries\LogCollector; +use App\Services\MyLogService; + abstract class CommonController extends BaseController { + private $_myAuth = null; private $_myLogService = null; + private $_helper = null; private $_viewDatas = []; abstract public function getService(): mixed; abstract public function getFields(): array; @@ -30,7 +31,16 @@ abstract class CommonController extends BaseController public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { parent::initController($request, $response, $logger); - $this->myauth = service('myauth'); + $this->_myAuth = service('myauth'); + if ($this->getMyAuth()->isLoggedIn()) { + $this->isLoggedIn = true; + $this->myAuthName = $this->getMyAuth()->getNameByAuthInfo(); + $this->myAuthUID = $this->getMyAuth()->getUIDByAuthInfo(); + } + } + final protected function getMyAuth(): mixed + { + return $this->_myAuth; } final public function __get($name) { @@ -50,6 +60,13 @@ abstract class CommonController extends BaseController } return $this->_myLogService; } + final public function getHelper(): mixed + { + if (!$this->_helper) { + $this->_helper = new MyLogService($this->request); + } + return $this->_helper; + } protected function getResultPageByActon(string $action, string $message = MESSAGES["SUCCESS"]): RedirectResponse|string { switch ($action) { @@ -57,6 +74,7 @@ abstract class CommonController extends BaseController case 'modify_form': case 'index': case 'view': + $this->helper->setViewDatas($this->getViewDatas()); $result = view($this->view_path . $action, ['viewDatas' => $this->getViewDatas()]); break; default: diff --git a/app/Helpers/AuthHelper.php b/app/Helpers/AuthHelper.php index 8195c5c..1c6ffe7 100644 --- a/app/Helpers/AuthHelper.php +++ b/app/Helpers/AuthHelper.php @@ -2,11 +2,15 @@ namespace App\Helpers; +use CodeIgniter\HTTP\IncomingRequest; +use App\Models\UserModel as Model; + class AuthHelper extends CommonHelper { - public function __construct($service) + protected ?IncomingRequest $request = null; + public function __construct(?IncomingRequest $request = null) { - parent::__construct($service); + parent::__construct($request); } public function getFieldForm(string $field, mixed $value, array $viewDatas, array $extras = []): string { @@ -16,7 +20,7 @@ class AuthHelper extends CommonHelper $value = $value ?: DEFAULTS['EMPTY']; switch ($field) { case 'id': - case $this->getService()->getModel()::TITLE: + case Model::TITLE: $form = form_input($field, $value, $extras); break; case 'passwd': diff --git a/app/Helpers/CommonHelper.php b/app/Helpers/CommonHelper.php index c29599c..4e16062 100644 --- a/app/Helpers/CommonHelper.php +++ b/app/Helpers/CommonHelper.php @@ -2,17 +2,26 @@ namespace App\Helpers; +use CodeIgniter\HTTP\IncomingRequest; + class CommonHelper { - private $_service = null; - public function __construct($service) + protected ?IncomingRequest $request = null; + private $_viewDatas = []; + public function __construct(?IncomingRequest $_request = null) { - $this->_service = $service; + $this->request = $_request; } - - final protected function getService(): mixed + final public function setViewDatas(array $viewDatas): void { - return $this->_service; + $this->_viewDatas = $viewDatas; + } + final public function getViewDatas(string $key) + { + if (!array_key_exists($key, $this->_viewDatas)) { + throw new \Exception("{$key}에 해당하는 ViewData가 존재하지 않습니다."); + } + return $this->_viewDatas[$key]; } final public function isDomainName(string $domain): bool @@ -151,7 +160,7 @@ class CommonHelper switch ($field) { default: $extras = (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? ["class" => "text-danger", "required" => "", ...$extras] : $extras; - $label = form_label(lang("{$this->getService()->getClassPath()}.label.{$field}"), $field, $extras); + $label = form_label(lang("{$viewDatas['class_path']}.label.{$field}"), $field, $extras); break; } return $label; @@ -167,7 +176,7 @@ class CommonHelper switch ($field) { case 'status': $form = form_dropdown($field, [ - "" => lang($this->getService()->getClassPath() . '.label.' . $field) . ' 선택', + "" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택', ] + $viewDatas['field_options'][$field], $value, $extras); break; case 'updated_at': @@ -228,7 +237,7 @@ class CommonHelper if (isset($viewDatas['order_field']) && $viewDatas['order_field'] == $field) { $label .= $viewDatas['order_value'] == 'ASC' ? ICONS["UP"] : ICONS["DOWN"]; } - $query = $this->getService()->getRequest()->getUri()->getQuery(['except' => ['order_field', 'order_value']]); + $query = $this->request->getUri()->getQuery(['except' => ['order_field', 'order_value']]); $query .= empty($query) ? "" : "&"; $query .= "order_field={$field}&order_value="; $query .= isset($viewDatas['order_value']) && $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC"; @@ -247,7 +256,7 @@ class CommonHelper '입력', $action, [ - "data-src" => current_url() . '/' . $action . '?' . $this->getService()->getRequest()->getUri()->getQuery(), + "data-src" => current_url() . '/' . $action . '?' . $this->request->getUri()->getQuery(), "data-bs-toggle" => "modal", "data-bs-target" => "#index_action_form", ...$extras diff --git a/app/Helpers/MyLogHelper.php b/app/Helpers/MyLogHelper.php index ddf47cc..e394918 100644 --- a/app/Helpers/MyLogHelper.php +++ b/app/Helpers/MyLogHelper.php @@ -2,13 +2,15 @@ namespace App\Helpers; +use CodeIgniter\HTTP\IncomingRequest; use App\Models\MyLogModel as Model; class MyLogHelper extends CommonHelper { - public function __construct($service) + protected ?IncomingRequest $request = null; + public function __construct(?IncomingRequest $request = null) { - parent::__construct($service); + parent::__construct($request); } public function getFieldView(string $field, array $viewDatas, array $extras = []): string diff --git a/app/Helpers/UserHelper.php b/app/Helpers/UserHelper.php index f6267e0..6017cb3 100644 --- a/app/Helpers/UserHelper.php +++ b/app/Helpers/UserHelper.php @@ -2,11 +2,15 @@ namespace App\Helpers; +use CodeIgniter\HTTP\IncomingRequest; +use App\Models\UserModel as Model; + class UserHelper extends CommonHelper { - public function __construct($service) + protected ?IncomingRequest $request = null; + public function __construct(?IncomingRequest $request = null) { - parent::__construct($service); + parent::__construct($request); } public function getFieldForm(string $field, mixed $value, array $viewDatas, array $extras = []): string { @@ -16,7 +20,7 @@ class UserHelper extends CommonHelper $value = $value ?: DEFAULTS['EMPTY']; switch ($field) { case 'id': - case $this->getService()->getModel()::TITLE: + case Model::TITLE: $form = form_input($field, $value, $extras); break; case 'passwd': @@ -45,7 +49,7 @@ class UserHelper extends CommonHelper $form = form_dropdown( $field, [ - "" => lang($this->getService()->getClassPath() . '.label.' . $field) . ' 선택', + "" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택', ] + $viewDatas['field_options'][$field], $value, $extras @@ -62,7 +66,7 @@ class UserHelper extends CommonHelper { $value = $viewDatas['entity']->$field ?: DEFAULTS['EMPTY']; switch ($field) { - case $this->getService()->getModel()::TITLE: + case Model::TITLE: $value = form_label( $value, 'view', diff --git a/app/Views/layouts/admin/top.php b/app/Views/layouts/admin/top.php index 9396ef5..0a0b670 100644 --- a/app/Views/layouts/admin/top.php +++ b/app/Views/layouts/admin/top.php @@ -18,11 +18,10 @@
diff --git a/app/Views/layouts/front/top.php b/app/Views/layouts/front/top.php index 3498bcf..11bc372 100644 --- a/app/Views/layouts/front/top.php +++ b/app/Views/layouts/front/top.php @@ -10,11 +10,10 @@ diff --git a/composer.json b/composer.json index 4d161ea..4b05c9d 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,6 @@ "php": "^8.2", "cloudflare/sdk": "^1.3", "codeigniter4/framework": "^4.5", - "google/apiclient": "^2.15.0", "guzzlehttp/guzzle": "^7.9", "io-developer/php-whois": "^4.1", "phpoffice/phpspreadsheet": "^1.27",