Files
sprinkle-scheduler/src/ServicesProvider/ServicesProvider.php

62 lines
1.7 KiB
PHP

<?php
/*
* AVSDev UF Scheduler (https://avsdev.uk)
*
* @link https://git.avsdev.uk/avsdev/sprinkle-scheduler
* @license https://git.avsdev.uk/avsdev/sprinkle-scheduler/blob/master/LICENSE.md (LGPL-3.0 License)
*/
namespace UserFrosting\Sprinkle\Scheduler\ServicesProvider;
use Illuminate\Container\Container;
use Psr\Container\ContainerInterface;
use Twig\Extra\Intl\IntlExtension;
use UserFrosting\Sprinkle\Core\ServicesProvider\BaseServicesProvider;
use UserFrosting\Sprinkle\Scheduler\Scheduler\Scheduler;
use UserFrosting\Sprinkle\Scheduler\Twig\FormatCronExtension;
/**
* Sheduler services provider.
*
* Registers core services for the Sheduler sprinkle.
*
* @author Craig Williams (https://avsdev.uk)
*/
class ServicesProvider
{
/**
* Register Sheduler's services.
*
* @param ContainerInterface $container A DI container implementing ArrayAccess and psr-container.
*/
public function register(ContainerInterface $container)
{
/*
* Return an instance of the task scheduler
*
* @return \UserFrosting\Sprinkle\Scheduler\Scheduler\Scheduler
*/
$container['scheduler'] = function ($c) {
return new Scheduler($c);
};
/*
* Extends the 'view' service with the HasRole extension for Twig.
*
* @return \Slim\Views\Twig
*/
$container->extend('view', function ($view, $c) {
$twig = $view->getEnvironment();
if (!$twig->hasExtension('Twig\Extra\Intl\IntlExtension')) {
$twig->addExtension(new IntlExtension());
}
$twig->addExtension(new FormatCronExtension($c));
return $view;
});
}
}