Logger, Dispatcher & Configuration

Logger

Stores a reference to your logger so that you can easily access it from anywhere in the stack. Compatible with any PSR-3 Logger.

use Monolog\Logger as Monolog;
use Monolog\Handler\SyslogHandler;
use Monolog\Processor\GitProcessor;
use Monolog\Processor\IntrospectionProcessor;
use Monolog\Processor\MemoryUsageProcessor;
use Monolog\Processor\UidProcessor;
use Skyzyx\Shared\Logger;

// Construct a PSR-3 Logger object
$logger = new Monolog('my_app');
$handler = new SyslogHandler('my_app');
$handler->pushProcessor(new GitProcessor());
$handler->pushProcessor(new IntrospectionProcessor());
$handler->pushProcessor(new MemoryUsageProcessor());
$handler->pushProcessor(new UidProcessor());
$logger->pushHandler($handler);

# Setup multiple loggers; each may be configured differently.
Logger::set('my_app', $logger);
Logger::set('my_second_app', Logger::create('my_second_app'));

// ...later...

Logger::get('my_app')->info('This is my INFO message!');
Logger::get('my_app')->debug('This is my DEBUG message!');

Dispatcher

Stores a reference to your event dispatcher so that you can easily access it from anywhere in the stack. Compatible with Symfony EventDispatcher.

use Skyzyx\Shared\Dispatcher;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\EventDispatcher\EventDispatcher;

// Use EventDispatcher as a globally-accessible event system
Dispatcher::setDispatcher(new EventDispatcher());

// ...later...

// Register an event with the dispatcher
Dispatcher::get()->addListener('event_name', function (Event $event) {
    // Do stuff
});

// ...later, still...

Dispatcher::get()->dispatch('event_name');

Configuration

Stores a reference to your configuration data so that you can easily access it from anywhere in the stack. Compatible with Pimple.

use Pimple\Container as Pimple;
use Skyzyx\Shared\Configuration;

# Use Pimple as a globally-accessible config store
Configuration::setContainer(new Pimple());

// ...later...

$config = Configuration::get();
$config['user.id'] = 'abc123';

// ...later, still...

$config = Configuration::get();
echo sprintf('The user's identifier is %s.', $config['user.id']);