diff options
| author | Christian Weiske <cweiske@cweiske.de> | 2014-01-23 17:22:47 +0100 |
|---|---|---|
| committer | Christian Weiske <cweiske@cweiske.de> | 2014-01-23 17:22:47 +0100 |
| commit | 76006cfc22b9462e50ff1a739ea25f99cf0d239d (patch) | |
| tree | 3ac1017b8194d82111e8a5a4fb2a02169df5c6fe /src | |
| parent | 21eb1d8202e756a2ccfd5ba4168f375ce995835e (diff) | |
| download | bdrem-76006cfc22b9462e50ff1a739ea25f99cf0d239d.tar.gz bdrem-76006cfc22b9462e50ff1a739ea25f99cf0d239d.zip | |
introduce UserInterface class, add simple parameter support for web and cli
Diffstat (limited to 'src')
| -rw-r--r-- | src/bdrem/Cli.php | 33 | ||||
| -rw-r--r-- | src/bdrem/UserInterface.php | 27 | ||||
| -rw-r--r-- | src/bdrem/Web.php | 26 | ||||
| -rw-r--r-- | src/bdrem/WebText.php | 2 |
4 files changed, 60 insertions, 28 deletions
diff --git a/src/bdrem/Cli.php b/src/bdrem/Cli.php index 807f336..c38e173 100644 --- a/src/bdrem/Cli.php +++ b/src/bdrem/Cli.php @@ -1,23 +1,32 @@ <?php namespace bdrem; -class Cli +class Cli extends UserInterface { - public function run() + protected function loadParameters($cfg) { - $cfg = new Config(); - $cfg->load(); - setlocale(LC_TIME, $cfg->locale); - $source = $cfg->loadSource(); + $params = $GLOBALS['argv']; + array_shift($params); + $storeInto = null; + foreach ($params as $param) { + if ($storeInto !== null) { + $cfg->$storeInto = (int)$param; + $storeInto = null; + continue; + } - $arEvents = $source->getEvents( - date('Y-m-d'), $cfg->daysBefore, $cfg->daysAfter - ); - usort($arEvents, '\\bdrem\\Event::compare'); - $this->render($arEvents); + if ($param == '--days-after' || $param == '-a') { + $storeInto = 'daysAfter'; + continue; + } else if ($param == '--days-before' || $param == '-b') { + $storeInto = 'daysBefore'; + continue; + } + $storeInto = null; + } } - public function render($arEvents) + protected function render($arEvents) { $r = new Renderer_Console(); echo $r->render($arEvents); diff --git a/src/bdrem/UserInterface.php b/src/bdrem/UserInterface.php new file mode 100644 index 0000000..ffaa279 --- /dev/null +++ b/src/bdrem/UserInterface.php @@ -0,0 +1,27 @@ +<?php +namespace bdrem; + +abstract class UserInterface +{ + public function run() + { + $cfg = new Config(); + $cfg->load(); + setlocale(LC_TIME, $cfg->locale); + $source = $cfg->loadSource(); + + $this->loadParameters($cfg); + $arEvents = $source->getEvents( + date('Y-m-d'), $cfg->daysBefore, $cfg->daysAfter + ); + usort($arEvents, '\\bdrem\\Event::compare'); + $this->render($arEvents); + } + + protected function loadParameters($cfg) + { + } + + abstract protected function render($arEvents); +} +?>
\ No newline at end of file diff --git a/src/bdrem/Web.php b/src/bdrem/Web.php index ac619ce..ab3973a 100644 --- a/src/bdrem/Web.php +++ b/src/bdrem/Web.php @@ -1,26 +1,22 @@ <?php namespace bdrem; -class Web +class Web extends UserInterface { - public function run() + protected function render($arEvents) { - $cfg = new Config(); - $cfg->load(); - setlocale(LC_TIME, $cfg->locale); - $source = $cfg->loadSource(); - - $arEvents = $source->getEvents( - date('Y-m-d'), $cfg->daysBefore, $cfg->daysAfter - ); - usort($arEvents, '\\bdrem\\Event::compare'); - $this->render($arEvents); + $r = new Renderer_Html(); + echo $r->render($arEvents); } - public function render($arEvents) + protected function loadParameters($cfg) { - $r = new Renderer_Html(); - echo $r->render($arEvents); + if (isset($_GET['daysBefore'])) { + $cfg->daysBefore = (int) $_GET['daysBefore']; + } + if (isset($_GET['daysAfter'])) { + $cfg->daysAfter = (int) $_GET['daysAfter']; + } } } ?> diff --git a/src/bdrem/WebText.php b/src/bdrem/WebText.php index 8f3ff8a..aaace51 100644 --- a/src/bdrem/WebText.php +++ b/src/bdrem/WebText.php @@ -3,7 +3,7 @@ namespace bdrem; class WebText extends Web { - public function render($arEvents) + protected function render($arEvents) { header('Content-type: text/plain; charset=utf-8'); $r = new Renderer_Console(); |
