Bristol SU Support Package
CompletionConditionServiceProvider.php
Go to the documentation of this file.
1 <?php
2 
4 
5 use BristolSU\Support\Completion\Contracts\CompletionConditionFactory as CompletionConditionFactoryContract;
7 use BristolSU\Support\Completion\Contracts\CompletionConditionInstanceRepository as CompletionConditionInstanceRepositoryContract;
8 use BristolSU\Support\Completion\Contracts\CompletionConditionManager as CompletionConditionManagerContract;
12 
16 class CompletionConditionServiceProvider extends ServiceProvider
17 {
18 
19  protected $completionConditions = [
20 // 'portalsystem_event_fired' => EventFired::class
21  ];
22 
29  public function register()
30  {
31  $this->app->bind(CompletionConditionFactoryContract::class, CompletionConditionFactory::class);
32  $this->app->bind(CompletionConditionInstanceContract::class, CompletionConditionInstance::class);
33  $this->app->bind(CompletionConditionInstanceRepositoryContract::class, CompletionConditionInstanceRepository::class);
34  $this->app->singleton(CompletionConditionManagerContract::class, CompletionConditionManager::class);
35  $this->app->bind(CompletionConditionRepositoryContract::class, CompletionConditionRepository::class);
36  $this->app->bind(CompletionConditionTesterContract::class, CompletionConditionTester::class);
37  }
38 
44  public function boot()
45  {
46  foreach ($this->completionConditions as $alias => $class) {
47  app(CompletionConditionManagerContract::class)->registerGlobalCondition($alias, $class);
48  }
49  }
50 
51 
52 }