* @author Joe Cohen * @author Graham Campbell */ class AppServiceProvider extends ServiceProvider { /** * Boot the service provider. * * @param \AltThree\Bus\Dispatcher $dispatcher */ public function boot(Dispatcher $dispatcher) { $dispatcher->mapUsing(function ($command) { return Dispatcher::simpleMapping($command, 'CachetHQ\Cachet\Bus', 'CachetHQ\Cachet\Bus\Handlers'); }); $dispatcher->pipeThrough([UseDatabaseTransactions::class]); Str::macro('canonicalize', function ($url) { return preg_replace('/([^\/])$/', '$1/', $url); }); } /** * Register the service provider. * * @return void */ public function register() { $this->registerDateFactory(); $this->registerRelease(); } /** * Register the date factory. * * @return void */ protected function registerDateFactory() { $this->app->singleton(DateFactory::class, function ($app) { $appTimezone = $app['config']->get('app.timezone'); $cacheTimezone = $app['config']->get('cachet.timezone'); return new DateFactory($appTimezone, $cacheTimezone); }); } /** * Register the releases class. * * @return void */ protected function registerRelease() { $this->app->singleton(Release::class, function ($app) { $cache = $app['cache.store']; $token = $app['config']->get('services.github.token') return new Release($cache, $token); }); } }