mirror of
https://github.com/pestphp/pest.git
synced 2026-03-06 15:57:21 +01:00
51 lines
1.1 KiB
PHP
51 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Pest\Bootstrappers;
|
|
|
|
use Pest\Contracts\Bootstrapper;
|
|
use Pest\Subscribers;
|
|
use Pest\Support\Container;
|
|
use PHPUnit\Event;
|
|
use PHPUnit\Event\Subscriber;
|
|
|
|
/**
|
|
* @internal
|
|
*/
|
|
final readonly class BootSubscribers implements Bootstrapper
|
|
{
|
|
/**
|
|
* The list of Subscribers.
|
|
*
|
|
* @var array<int, class-string<Subscriber>>
|
|
*/
|
|
private const array SUBSCRIBERS = [
|
|
Subscribers\EnsureConfigurationIsAvailable::class,
|
|
Subscribers\EnsureIgnorableTestCasesAreIgnored::class,
|
|
Subscribers\EnsureKernelDumpIsFlushed::class,
|
|
Subscribers\EnsureTeamCityEnabled::class,
|
|
];
|
|
|
|
/**
|
|
* Creates a new instance of the Boot Subscribers.
|
|
*/
|
|
public function __construct(
|
|
private Container $container,
|
|
) {}
|
|
|
|
/**
|
|
* Boots the list of Subscribers.
|
|
*/
|
|
public function boot(): void
|
|
{
|
|
foreach (self::SUBSCRIBERS as $subscriber) {
|
|
$instance = $this->container->get($subscriber);
|
|
|
|
assert($instance instanceof Subscriber);
|
|
|
|
Event\Facade::instance()->registerSubscriber($instance);
|
|
}
|
|
}
|
|
}
|