62 lines
1.7 KiB
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;
|
|
});
|
|
}
|
|
}
|