aboutsummaryrefslogtreecommitdiff
path: root/src/bdrem
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2014-01-23 17:22:47 +0100
committerChristian Weiske <cweiske@cweiske.de>2014-01-23 17:22:47 +0100
commit76006cfc22b9462e50ff1a739ea25f99cf0d239d (patch)
tree3ac1017b8194d82111e8a5a4fb2a02169df5c6fe /src/bdrem
parent21eb1d8202e756a2ccfd5ba4168f375ce995835e (diff)
downloadbdrem-76006cfc22b9462e50ff1a739ea25f99cf0d239d.tar.gz
bdrem-76006cfc22b9462e50ff1a739ea25f99cf0d239d.zip
introduce UserInterface class, add simple parameter support for web and cli
Diffstat (limited to 'src/bdrem')
-rw-r--r--src/bdrem/Cli.php33
-rw-r--r--src/bdrem/UserInterface.php27
-rw-r--r--src/bdrem/Web.php26
-rw-r--r--src/bdrem/WebText.php2
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();