From 9808ff5923e787b3346e6503dbb8e012aef169c8 Mon Sep 17 00:00:00 2001 From: Sam Mousa Date: Mon, 12 Nov 2018 16:58:56 +0100 Subject: [PATCH 1/4] Refactor singleton functionality into trait --- server/libs/FileDownloader.php | 13 ------------- server/libs/FileManager.php | 1 + server/libs/FileUploader.php | 10 ---------- server/libs/MailSender.php | 10 +--------- server/libs/SingletonTrait.php | 18 ++++++++++++++++++ server/models/Session.php | 11 ++--------- 6 files changed, 22 insertions(+), 41 deletions(-) create mode 100644 server/libs/SingletonTrait.php diff --git a/server/libs/FileDownloader.php b/server/libs/FileDownloader.php index 3d069029..2671c9a3 100755 --- a/server/libs/FileDownloader.php +++ b/server/libs/FileDownloader.php @@ -1,19 +1,6 @@ getFullFilePath(); diff --git a/server/libs/FileManager.php b/server/libs/FileManager.php index d1b9f147..86c7be0f 100755 --- a/server/libs/FileManager.php +++ b/server/libs/FileManager.php @@ -1,6 +1,7 @@ storage = new \Upload\Storage\FileSystem($this->getLocalPath()); } diff --git a/server/libs/MailSender.php b/server/libs/MailSender.php index 1d6b2172..1f0b9c7b 100755 --- a/server/libs/MailSender.php +++ b/server/libs/MailSender.php @@ -1,17 +1,9 @@ setConnectionSettings( diff --git a/server/libs/SingletonTrait.php b/server/libs/SingletonTrait.php new file mode 100644 index 00000000..6655915c --- /dev/null +++ b/server/libs/SingletonTrait.php @@ -0,0 +1,18 @@ +store('userId', $userId); $this->store('staff', $staff); From f5d77bdd5489afea7d8dab12ab4ac4e0922785e4 Mon Sep 17 00:00:00 2001 From: Sam Mousa Date: Mon, 12 Nov 2018 17:18:19 +0100 Subject: [PATCH 2/4] Add `SingletonTrait` to composers' autoloader --- server/composer.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/composer.json b/server/composer.json index 33104af1..385b094c 100755 --- a/server/composer.json +++ b/server/composer.json @@ -11,5 +11,10 @@ }, "require-dev": { "phpunit/phpunit": "^5.7" + }, + "autoload": { + "classmap": [ + "libs/SingletonTrait.php" + ] } } From 5c88c8ac2a5b601ab389f456fb9fa7e1018818c2 Mon Sep 17 00:00:00 2001 From: Sam Mousa Date: Mon, 19 Nov 2018 14:14:27 +0100 Subject: [PATCH 3/4] Make constructor protected --- server/libs/FileUploader.php | 3 ++- server/libs/SingletonTrait.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/server/libs/FileUploader.php b/server/libs/FileUploader.php index 382e25d4..e6cb6fcc 100755 --- a/server/libs/FileUploader.php +++ b/server/libs/FileUploader.php @@ -6,7 +6,8 @@ class FileUploader extends FileManager { private $permission; private $storage; - private function __construct() { + protected function __construct() { + parent::__construct(); $this->storage = new \Upload\Storage\FileSystem($this->getLocalPath()); } diff --git a/server/libs/SingletonTrait.php b/server/libs/SingletonTrait.php index 6655915c..9443e150 100644 --- a/server/libs/SingletonTrait.php +++ b/server/libs/SingletonTrait.php @@ -4,7 +4,7 @@ trait SingletonTrait { private static $instance; - private function __construct() + protected function __construct() { } From 1a5f38f6dec0b7a3af3c810402bc016270dd2c91 Mon Sep 17 00:00:00 2001 From: Sam Mousa Date: Mon, 19 Nov 2018 14:27:42 +0100 Subject: [PATCH 4/4] Improved singleton implementation --- server/libs/FileDownloader.php | 2 ++ server/libs/FileManager.php | 1 - server/libs/FileUploader.php | 5 +++-- server/libs/SingletonTrait.php | 9 +++++++-- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/server/libs/FileDownloader.php b/server/libs/FileDownloader.php index 2671c9a3..4ea3bcf2 100755 --- a/server/libs/FileDownloader.php +++ b/server/libs/FileDownloader.php @@ -1,6 +1,8 @@ getFullFilePath(); diff --git a/server/libs/FileManager.php b/server/libs/FileManager.php index 86c7be0f..d1b9f147 100755 --- a/server/libs/FileManager.php +++ b/server/libs/FileManager.php @@ -1,7 +1,6 @@ storage = new \Upload\Storage\FileSystem($this->getLocalPath()); } diff --git a/server/libs/SingletonTrait.php b/server/libs/SingletonTrait.php index 9443e150..429ebddf 100644 --- a/server/libs/SingletonTrait.php +++ b/server/libs/SingletonTrait.php @@ -1,10 +1,15 @@