Convert services to singletons and use lazy loading to improve performance (#479)

* use singletons to reduce need to recreate the same objects

* unable to make the constructor private

* comment out debug printing to log file

* correct typo of treating self() as a var instead of a function

* utilise Localisation service as a singleton

* fix errent line that should have been commented

* remove phpinfo

* correct mistake in stock controller

* try storing app in apcu

* serialise inside the app closures

* get timings for db-changed-time

* get timings for db-changed-time

* store localisation service in apcu

* stor translations in apcu instead of localisation service (due to database connection)

* correct syntax error

* forgot to uncomment instance map

* correct indentation and variable out of scope

* more timings for app execution time

* try apc caching for views

* correct scope for Pot variable

* remove additional fopen

* correct timings for app build time

* correct timings for app object build time

* correct timings for app route build time

* get timings for routing timings

* get more in depth timings for routing loading

* fix more in depth timings for routing loading

* start investigating session auth middleware creation

* start investigating session auth middleware creation

* start investigating Login controller time

* start investigating Login controller time

* in depth look at Logincontroller timings

* comment out debug printing

* lazily obtain valus for page rendering

* correct syntax error

* correct scope of variable

* correct visibiity of methds inherited from BaseController

* missing use for Userfieldsservice

* lazy loading of open api spec

* lazy loading of users service

* lazy loading of batteries service

* lazy loading of services in controllers

* lazy loading of services in services

* correct mistake

* fix userservice

* fix userservice

* fix userfieldservice

* fix chores service

* fix calendar service

* remove Dockerfile used for development

* Remove docker compose file used for development

* Clean up app.php

* remove last diff

* Clean up base controller

* Clean up controllers

* lean up middleware

* Clean up and tuen all services into singletons

* remove debug from routes.php

* remove acpu from localisation

* Complete removal of acpu from localisation

* fixes for things broken

* More fixes following merge

* Fix for start up bug. Re factoring singleton code had brroken due to scope of clas var.

* fix bug where getUsersService is declared twice

* bug fixes following merge

* bug fixes following merge

* bug fixes following merge

* bug fixes following merge

* bug fixes following merge

* Fix all the not working things...

* Deleted off-topic files

* Deleted off-topic files

Co-authored-by: Bernd Bestel <bernd@berrnd.de>
This commit is contained in:
zebardy
2020-03-01 23:47:47 +07:00
committed by GitHub
parent 2b1dc7756d
commit 1a5f3ce926
49 changed files with 875 additions and 837 deletions

View File

@@ -6,7 +6,7 @@ class UsersService extends BaseService
{
public function CreateUser(string $username, string $firstName, string $lastName, string $password)
{
$newUserRow = $this->Database->users()->createRow(array(
$newUserRow = $this->getDatabase()->users()->createRow(array(
'username' => $username,
'first_name' => $firstName,
'last_name' => $lastName,
@@ -22,7 +22,7 @@ class UsersService extends BaseService
throw new \Exception('User does not exist');
}
$user = $this->Database->users($userId);
$user = $this->getDatabase()->users($userId);
$user->update(array(
'username' => $username,
'first_name' => $firstName,
@@ -33,13 +33,13 @@ class UsersService extends BaseService
public function DeleteUser($userId)
{
$row = $this->Database->users($userId);
$row = $this->getDatabase()->users($userId);
$row->delete();
}
public function GetUsersAsDto()
{
$users = $this->Database->users();
$users = $this->getDatabase()->users();
$returnUsers = array();
foreach ($users as $user)
{
@@ -52,7 +52,7 @@ class UsersService extends BaseService
public function GetUserSetting($userId, $settingKey)
{
$settingRow = $this->Database->user_settings()->where('user_id = :1 AND key = :2', $userId, $settingKey)->fetch();
$settingRow = $this->getDatabase()->user_settings()->where('user_id = :1 AND key = :2', $userId, $settingKey)->fetch();
if ($settingRow !== null)
{
return $settingRow->value;
@@ -67,7 +67,7 @@ class UsersService extends BaseService
{
$settings = array();
$settingRows = $this->Database->user_settings()->where('user_id = :1', $userId)->fetchAll();
$settingRows = $this->getDatabase()->user_settings()->where('user_id = :1', $userId)->fetchAll();
foreach ($settingRows as $settingRow)
{
$settings[$settingRow->key] = $settingRow->value;
@@ -80,7 +80,7 @@ class UsersService extends BaseService
public function SetUserSetting($userId, $settingKey, $settingValue)
{
$settingRow = $this->Database->user_settings()->where('user_id = :1 AND key = :2', $userId, $settingKey)->fetch();
$settingRow = $this->getDatabase()->user_settings()->where('user_id = :1 AND key = :2', $userId, $settingKey)->fetch();
if ($settingRow !== null)
{
$settingRow->update(array(
@@ -90,7 +90,7 @@ class UsersService extends BaseService
}
else
{
$settingRow = $this->Database->user_settings()->createRow(array(
$settingRow = $this->getDatabase()->user_settings()->createRow(array(
'user_id' => $userId,
'key' => $settingKey,
'value' => $settingValue
@@ -101,7 +101,7 @@ class UsersService extends BaseService
private function UserExists($userId)
{
$userRow = $this->Database->users()->where('id = :1', $userId)->fetch();
$userRow = $this->getDatabase()->users()->where('id = :1', $userId)->fetch();
return $userRow !== null;
}
}