From 7cf14304334d9deb9c16943eeb489318c30b96d1 Mon Sep 17 00:00:00 2001 From: zebardy Date: Sat, 23 Nov 2019 15:06:57 +0000 Subject: [PATCH] lazy loading of services in controllers --- controllers/CalendarApiController.php | 4 ++-- controllers/ChoresController.php | 20 +++++++--------- controllers/EquipmentController.php | 11 ++++----- controllers/GenericEntityApiController.php | 9 ++------ controllers/GenericEntityController.php | 27 +++++++++------------- controllers/RecipesApiController.php | 6 ++--- controllers/TasksController.php | 22 ++++++++---------- 7 files changed, 39 insertions(+), 60 deletions(-) diff --git a/controllers/CalendarApiController.php b/controllers/CalendarApiController.php index 674ca0aa..b9c92f7b 100644 --- a/controllers/CalendarApiController.php +++ b/controllers/CalendarApiController.php @@ -28,7 +28,7 @@ class CalendarApiController extends BaseApiController { $date = new \DateTime($event['start']); $date->setTimezone(date_default_timezone_get()); - + if ($event['date_format'] === 'date') { $date->setTime(23, 59, 59); @@ -41,7 +41,7 @@ class CalendarApiController extends BaseApiController ->setDescription($event['description']) ->setNoTime($event['date_format'] === 'date') ->setUseTimezone(true); - + $vCalendar->addComponent($vEvent); } diff --git a/controllers/ChoresController.php b/controllers/ChoresController.php index 64925708..23c81fc8 100644 --- a/controllers/ChoresController.php +++ b/controllers/ChoresController.php @@ -3,8 +3,6 @@ namespace Grocy\Controllers; use \Grocy\Services\ChoresService; -use \Grocy\Services\UsersService; -use \Grocy\Services\UserfieldsService; class ChoresController extends BaseController { @@ -12,23 +10,21 @@ class ChoresController extends BaseController { parent::__construct($container); $this->ChoresService = new ChoresService(); - $this->UserfieldsService = new UserfieldsService(); } protected $ChoresService; - protected $UserfieldsService; public function Overview(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - $usersService = new UsersService(); + $usersService = $this->getUsersService(); $nextXDays = $usersService->GetUserSettings(GROCY_USER_ID)['chores_due_soon_days']; return $this->renderPage($response, 'choresoverview', [ 'chores' => $this->getDatabase()->chores()->orderBy('name'), 'currentChores' => $this->ChoresService->GetCurrent(), 'nextXDays' => $nextXDays, - 'userfields' => $this->UserfieldsService->GetFields('chores'), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('chores'), + 'userfields' => $this->getUserfieldsService()->GetFields('chores'), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('chores'), 'users' => $usersService->GetUsersAsDto() ]); } @@ -45,8 +41,8 @@ class ChoresController extends BaseController { return $this->renderPage($response, 'chores', [ 'chores' => $this->getDatabase()->chores()->orderBy('name'), - 'userfields' => $this->UserfieldsService->GetFields('chores'), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('chores') + 'userfields' => $this->getUserfieldsService()->GetFields('chores'), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('chores') ]); } @@ -61,7 +57,7 @@ class ChoresController extends BaseController public function ChoreEditForm(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - $usersService = new UsersService(); + $usersService = getUsersService(); $users = $usersService->GetUsersAsDto(); if ($args['choreId'] == 'new') @@ -69,7 +65,7 @@ class ChoresController extends BaseController return $this->renderPage($response, 'choreform', [ 'periodTypes' => GetClassConstants('\Grocy\Services\ChoresService', 'CHORE_PERIOD_TYPE_'), 'mode' => 'create', - 'userfields' => $this->UserfieldsService->GetFields('chores'), + 'userfields' => $this->getUserfieldsService()->GetFields('chores'), 'assignmentTypes' => GetClassConstants('\Grocy\Services\ChoresService', 'CHORE_ASSIGNMENT_TYPE_'), 'users' => $users, 'products' => $this->getDatabase()->products()->orderBy('name') @@ -81,7 +77,7 @@ class ChoresController extends BaseController 'chore' => $this->getDatabase()->chores($args['choreId']), 'periodTypes' => GetClassConstants('\Grocy\Services\ChoresService', 'CHORE_PERIOD_TYPE_'), 'mode' => 'edit', - 'userfields' => $this->UserfieldsService->GetFields('chores'), + 'userfields' => $this->getUserfieldsService()->GetFields('chores'), 'assignmentTypes' => GetClassConstants('\Grocy\Services\ChoresService', 'CHORE_ASSIGNMENT_TYPE_'), 'users' => $users, 'products' => $this->getDatabase()->products()->orderBy('name') diff --git a/controllers/EquipmentController.php b/controllers/EquipmentController.php index 13e1582f..d30e231a 100644 --- a/controllers/EquipmentController.php +++ b/controllers/EquipmentController.php @@ -2,14 +2,11 @@ namespace Grocy\Controllers; -use \Grocy\Services\UserfieldsService; - class EquipmentController extends BaseController { public function __construct(\Slim\Container $container) { parent::__construct($container); - $this->UserfieldsService = new UserfieldsService(); } protected $UserfieldsService; @@ -18,8 +15,8 @@ class EquipmentController extends BaseController { return $this->renderPage($response, 'equipment', [ 'equipment' => $this->getDatabase()->equipment()->orderBy('name'), - 'userfields' => $this->UserfieldsService->GetFields('equipment'), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('equipment') + 'userfields' => $this->getUserfieldsService()->GetFields('equipment'), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('equipment') ]); } @@ -29,7 +26,7 @@ class EquipmentController extends BaseController { return $this->renderPage($response, 'equipmentform', [ 'mode' => 'create', - 'userfields' => $this->UserfieldsService->GetFields('equipment') + 'userfields' => $this->getUserfieldsService()->GetFields('equipment') ]); } else @@ -37,7 +34,7 @@ class EquipmentController extends BaseController return $this->renderPage($response, 'equipmentform', [ 'equipment' => $this->getDatabase()->equipment($args['equipmentId']), 'mode' => 'edit', - 'userfields' => $this->UserfieldsService->GetFields('equipment') + 'userfields' => $this->getUserfieldsService()->GetFields('equipment') ]); } } diff --git a/controllers/GenericEntityApiController.php b/controllers/GenericEntityApiController.php index 99c563c9..203ea5fe 100644 --- a/controllers/GenericEntityApiController.php +++ b/controllers/GenericEntityApiController.php @@ -2,18 +2,13 @@ namespace Grocy\Controllers; -use \Grocy\Services\UserfieldsService; - class GenericEntityApiController extends BaseApiController { public function __construct(\Slim\Container $container) { parent::__construct($container); - $this->UserfieldsService = new UserfieldsService(); } - protected $UserfieldsService; - public function GetObjects(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { if ($this->IsValidEntity($args['entity']) && !$this->IsEntityWithPreventedListing($args['entity'])) @@ -136,7 +131,7 @@ class GenericEntityApiController extends BaseApiController { try { - return $this->ApiResponse($this->UserfieldsService->GetValues($args['entity'], $args['objectId'])); + return $this->ApiResponse($this->getUserfieldsService()->GetValues($args['entity'], $args['objectId'])); } catch (\Exception $ex) { @@ -155,7 +150,7 @@ class GenericEntityApiController extends BaseApiController throw new \Exception('Request body could not be parsed (probably invalid JSON format or missing/wrong Content-Type header)'); } - $this->UserfieldsService->SetValues($args['entity'], $args['objectId'], $requestBody); + $this->getUserfieldsService()->SetValues($args['entity'], $args['objectId'], $requestBody); return $this->EmptyApiResponse($response); } catch (\Exception $ex) diff --git a/controllers/GenericEntityController.php b/controllers/GenericEntityController.php index f30d154c..7340c850 100644 --- a/controllers/GenericEntityController.php +++ b/controllers/GenericEntityController.php @@ -2,23 +2,18 @@ namespace Grocy\Controllers; -use \Grocy\Services\UserfieldsService; - class GenericEntityController extends BaseController { public function __construct(\Slim\Container $container) { parent::__construct($container); - $this->UserfieldsService = new UserfieldsService(); } - protected $UserfieldsService; - public function UserfieldsList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { return $this->renderPage($response, 'userfields', [ - 'userfields' => $this->UserfieldsService->GetAllFields(), - 'entities' => $this->UserfieldsService->GetEntities() + 'userfields' => $this->getUserfieldsService()->GetAllFields(), + 'entities' => $this->getUserfieldsService()->GetEntities() ]); } @@ -36,8 +31,8 @@ class GenericEntityController extends BaseController return $this->renderPage($response, 'userobjects', [ 'userentity' => $userentity, 'userobjects' => $this->getDatabase()->userobjects()->where('userentity_id = :1', $userentity->id), - 'userfields' => $this->UserfieldsService->GetFields('userentity-' . $args['userentityName']), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('userentity-' . $args['userentityName']) + 'userfields' => $this->getUserfieldsService()->GetFields('userentity-' . $args['userentityName']), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('userentity-' . $args['userentityName']) ]); } @@ -47,17 +42,17 @@ class GenericEntityController extends BaseController { return $this->renderPage($response, 'userfieldform', [ 'mode' => 'create', - 'userfieldTypes' => $this->UserfieldsService->GetFieldTypes(), - 'entities' => $this->UserfieldsService->GetEntities() + 'userfieldTypes' => $this->getUserfieldsService()->GetFieldTypes(), + 'entities' => $this->getUserfieldsService()->GetEntities() ]); } else { return $this->renderPage($response, 'userfieldform', [ 'mode' => 'edit', - 'userfield' => $this->UserfieldsService->GetField($args['userfieldId']), - 'userfieldTypes' => $this->UserfieldsService->GetFieldTypes(), - 'entities' => $this->UserfieldsService->GetEntities() + 'userfield' => $this->getUserfieldsService()->GetField($args['userfieldId']), + 'userfieldTypes' => $this->getUserfieldsService()->GetFieldTypes(), + 'entities' => $this->getUserfieldsService()->GetEntities() ]); } } @@ -88,7 +83,7 @@ class GenericEntityController extends BaseController return $this->renderPage($response, 'userobjectform', [ 'userentity' => $userentity, 'mode' => 'create', - 'userfields' => $this->UserfieldsService->GetFields('userentity-' . $args['userentityName']) + 'userfields' => $this->getUserfieldsService()->GetFields('userentity-' . $args['userentityName']) ]); } else @@ -97,7 +92,7 @@ class GenericEntityController extends BaseController 'userentity' => $userentity, 'mode' => 'edit', 'userobject' => $this->getDatabase()->userobjects($args['userobjectId']), - 'userfields' => $this->UserfieldsService->GetFields('userentity-' . $args['userentityName']) + 'userfields' => $this->getUserfieldsService()->GetFields('userentity-' . $args['userentityName']) ]); } } diff --git a/controllers/RecipesApiController.php b/controllers/RecipesApiController.php index 3f3ee0cf..272f4ba4 100644 --- a/controllers/RecipesApiController.php +++ b/controllers/RecipesApiController.php @@ -23,7 +23,7 @@ class RecipesApiController extends BaseApiController { $excludedProductIds = $requestBody['excludedProductIds']; } - + $this->RecipesService->AddNotFulfilledProductsToShoppingList($args['recipeId'], $excludedProductIds); return $this->EmptyApiResponse($response); } @@ -44,7 +44,7 @@ class RecipesApiController extends BaseApiController public function GetRecipeFulfillment(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { try - { + { if(!isset($args['recipeId'])) { return $this->ApiResponse($this->RecipesService->GetRecipesResolved()); @@ -59,7 +59,7 @@ class RecipesApiController extends BaseApiController { return $this->ApiResponse($recipeResolved); } - } + } catch (\Exception $ex) { return $this->GenericErrorResponse($response, $ex->getMessage()); diff --git a/controllers/TasksController.php b/controllers/TasksController.php index 7de268b6..152c3b9a 100644 --- a/controllers/TasksController.php +++ b/controllers/TasksController.php @@ -3,8 +3,6 @@ namespace Grocy\Controllers; use \Grocy\Services\TasksService; -use \Grocy\Services\UsersService; -use \Grocy\Services\UserfieldsService; class TasksController extends BaseController { @@ -12,11 +10,9 @@ class TasksController extends BaseController { parent::__construct($container); $this->TasksService = new TasksService(); - $this->UserfieldsService = new UserfieldsService(); } protected $TasksService; - protected $UserfieldsService; public function Overview(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { @@ -29,7 +25,7 @@ class TasksController extends BaseController $tasks = $this->TasksService->GetCurrent(); } - $usersService = new UsersService(); + $usersService = $this->getUsersService(); $nextXDays = $usersService->GetUserSettings(GROCY_USER_ID)['tasks_due_soon_days']; return $this->renderPage($response, 'tasks', [ @@ -37,8 +33,8 @@ class TasksController extends BaseController 'nextXDays' => $nextXDays, 'taskCategories' => $this->getDatabase()->task_categories()->orderBy('name'), 'users' => $this->getDatabase()->users(), - 'userfields' => $this->UserfieldsService->GetFields('tasks'), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('tasks') + 'userfields' => $this->getUserfieldsService()->GetFields('tasks'), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('tasks') ]); } @@ -50,7 +46,7 @@ class TasksController extends BaseController 'mode' => 'create', 'taskCategories' => $this->getDatabase()->task_categories()->orderBy('name'), 'users' => $this->getDatabase()->users()->orderBy('username'), - 'userfields' => $this->UserfieldsService->GetFields('tasks') + 'userfields' => $this->getUserfieldsService()->GetFields('tasks') ]); } else @@ -60,7 +56,7 @@ class TasksController extends BaseController 'mode' => 'edit', 'taskCategories' => $this->getDatabase()->task_categories()->orderBy('name'), 'users' => $this->getDatabase()->users()->orderBy('username'), - 'userfields' => $this->UserfieldsService->GetFields('tasks') + 'userfields' => $this->getUserfieldsService()->GetFields('tasks') ]); } } @@ -69,8 +65,8 @@ class TasksController extends BaseController { return $this->renderPage($response, 'taskcategories', [ 'taskCategories' => $this->getDatabase()->task_categories()->orderBy('name'), - 'userfields' => $this->UserfieldsService->GetFields('task_categories'), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('task_categories') + 'userfields' => $this->getUserfieldsService()->GetFields('task_categories'), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('task_categories') ]); } @@ -80,7 +76,7 @@ class TasksController extends BaseController { return $this->renderPage($response, 'taskcategoryform', [ 'mode' => 'create', - 'userfields' => $this->UserfieldsService->GetFields('task_categories') + 'userfields' => $this->getUserfieldsService()->GetFields('task_categories') ]); } else @@ -88,7 +84,7 @@ class TasksController extends BaseController return $this->renderPage($response, 'taskcategoryform', [ 'category' => $this->getDatabase()->task_categories($args['categoryId']), 'mode' => 'edit', - 'userfields' => $this->UserfieldsService->GetFields('task_categories') + 'userfields' => $this->getUserfieldsService()->GetFields('task_categories') ]); } }