PSR-3 logger implementation
PSR-11 container implementation
PSR-14 event dispatcher implementation
use Shirokovnv\PsrEx\Log\Formatter\BaseFormatter;
use Shirokovnv\PsrEx\Log\Handler\FileHandler;
use Shirokovnv\PsrEx\Log\Logger;
// Example logging to the file
$logger = new Logger(new FileHandler('log.txt'), new BaseFormatter());
$logger->log(\Psr\Log\LogLevel::DEBUG, 'debug message', [ 'context' => 'some context' ]);
use Shirokovnv\PsrEx\Container\Container;
$container = new Container();
// Put into the container
$container->set(ServiceInterface::class, Service::class);
// Get from the container
// assert instanceOf Service::class
$instance = $container->get(ServiceInterface::class);
// Check existence
if ($container->has(ServiceInterface::class)) {
// do stuff
}
use Shirokovnv\PsrEx\Event\EventDispatcher;
use Shirokovnv\PsrEx\Event\ListenerProvider;
$event = new MyEvent();
$listener = new MyEventListener();
$listenerProvider = new ListenerProvider();
$eventDispatcher = new EventDispatcher($listenerProvider);
// Bind event and listener
$listenerProvider->addListener($event::class, $listener);
// Dispatch
$eventDispatcher->dispatch($event);
// Clear
$listenerProvider->clearListeners();
$ composer test
MIT. Please see the license file for more information.