Skip to content

Commit

Permalink
Logging of actions in Exporter now uses Symfony EventDispatcher.
Browse files Browse the repository at this point in the history
  • Loading branch information
mermshaus committed Mar 27, 2012
1 parent f65e467 commit 5ede84a
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 10 deletions.
25 changes: 25 additions & 0 deletions library/Phpsog/ExportEvent.php
@@ -0,0 +1,25 @@
<?php

namespace Phpsog;

use Symfony\Component\EventDispatcher\Event;

class ExportEvent extends Event
{
protected $message = '';

public function __construct($message)
{
$this->message = $message;
}

public function getMessage()
{
return $this->message;
}

public function setMessage($message)
{
$this->message = $message;
}
}
14 changes: 8 additions & 6 deletions library/Phpsog/Exporter.php
Expand Up @@ -3,7 +3,8 @@
namespace Phpsog;

use Kaloa\Filesystem\PathHelper;
use Phpsog\Logger;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Phpsog\ExportEvent;

class Exporter
{
Expand All @@ -15,15 +16,16 @@ class Exporter

/**
*
* @var Logger
* @var EventDispatcherInterface
*/
protected $logger;

/**
*
* @param PathHelper $pathHelper
*/
public function __construct(PathHelper $pathHelper, Logger $logger)
public function __construct(PathHelper $pathHelper,
EventDispatcherInterface $logger)
{
$this->pathHelper = $pathHelper;
$this->logger = $logger;
Expand All @@ -39,7 +41,7 @@ public function mkdir($path, $rights = 0777, $recursive = true)
}

mkdir($path, $rights, $recursive);
$this->logger->log(' [mkdir] ' . $normPath);
$this->logger->dispatch('onMkdir', new ExportEvent('[mkdir] ' . $normPath));
}

/**
Expand All @@ -60,8 +62,8 @@ public function export($exportPath, $content)
$normPath = ltrim($normPath, '/');
}

$this->logger->log(' [export] ' . $normPath);

file_put_contents($exportPath, $content);

$this->logger->dispatch('onExport', new ExportEvent('[export] ' . $normPath));
}
}
9 changes: 9 additions & 0 deletions library/Phpsog/Logger.php
Expand Up @@ -2,14 +2,23 @@

namespace Phpsog;

use Phpsog\ExportEvent;

/**
*
* @author Marc Ermshaus <marc@ermshaus.org>
*/
class Logger
{
public function onExport(ExportEvent $event)
{
$this->log($event->getMessage());
}

public function log($text)
{
$text = preg_replace('/^/m', ' ', $text);

echo $text . "\n";
}
}
29 changes: 25 additions & 4 deletions phpsog
Expand Up @@ -14,7 +14,9 @@ if (
use Phpsog\Application;
use Phpsog\Exporter;
use Phpsog\Logger;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Kaloa\Filesystem\PathHelper;
use Phpsog\ExportEvent;

try {
$params = array(
Expand All @@ -39,19 +41,38 @@ try {
$params['config'] .= '/phpsog.ini';
}

$ph = new PathHelper();
$logger = new Logger();
$ph = new PathHelper();
$dispatcher = new EventDispatcher();
$exporter = new Exporter($ph, $dispatcher);
$logger = new Logger();
$adapt = function (ExportEvent $event) use ($logger) {
$logger->onExport($event);
};
$dispatcher->addListener('onExport', $adapt);
$dispatcher->addListener('onMkdir', $adapt);

$phpsog = new Application(new Exporter($ph, $logger), $ph);
$exportCounter = 0;
$mkdirCounter = 0;

$dispatcher->addListener('onExport', function () use (&$exportCounter) {
$exportCounter++;
});
$dispatcher->addListener('onMkdir', function () use (&$mkdirCounter) {
$mkdirCounter++;
});

$phpsog = new Application($exporter, $ph);

$phpsog->loadConfig($params['config']);

$phpsog->sanitizeEnvironment();

$phpsog->processHtmlProvider();
$phpsog->processResources();
}

$logger->log("\n" . 'Event count: Export: ' . $exportCounter
. ' Mkdir: ' . $mkdirCounter);
}
} catch (Exception $e) {
die('Error: ' . $e->getMessage() . "\n");
}

0 comments on commit 5ede84a

Please sign in to comment.