summaryrefslogtreecommitdiff
path: root/src/Message/Handler.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Message/Handler.php')
-rw-r--r--src/Message/Handler.php69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/Message/Handler.php b/src/Message/Handler.php
new file mode 100644
index 0000000..8729c1a
--- /dev/null
+++ b/src/Message/Handler.php
@@ -0,0 +1,69 @@
+<?php
+
+namespace App\Message;
+
+use App\Message\Overview;
+
+/**
+* Handles messages and context
+*/
+class Handler
+{
+ protected $important = [];
+
+ protected $importantValues = [];
+
+ public function __construct($important)
+ {
+ $this->setupImportant($important);
+ }
+ /**
+ * Set's up important attributes on this class
+ */
+ public function setupImportant($important = [])
+ {
+ $this->important = $important;
+ }
+
+ protected function setImportantValues($array)
+ {
+ foreach ($array as $name => $value) {
+ $this->addImportantValue($name, $value);
+ }
+ }
+
+ protected function addImportantValue($name, $value)
+ {
+ if (in_array($name, $this->important)) {
+ $this->importantValues[$name] = $value;
+ }
+
+ return $name;
+ }
+
+ public function returnImportant($name)
+ {
+ if (!array_key_exists($name, $this->importantValues)) {
+ throw new \Exception('The var ' . $name . ' is not set in this context');
+ }
+
+ return $this->importantValues[$name];
+ }
+
+ public function __call($name, $arguments)
+ {
+ if (strpos($name, 'get') === 0) {
+ $this->returnImporant(substr($name, 3));
+ }
+ }
+
+ public function renderOpeningMessage()
+ {
+ $overview = new Overview();
+ $message = $overview->renderMessage();
+
+ $this->setImportantValues($overview->getImportantValues());
+
+ return $message;
+ }
+} \ No newline at end of file