28 lines
662 B
PHP
28 lines
662 B
PHP
<?php declare(strict_types = 1);
|
|
|
|
namespace MailPoet\API\REST;
|
|
|
|
if (!defined('ABSPATH')) exit;
|
|
|
|
|
|
use MailPoet\InvalidStateException;
|
|
use MailPoetVendor\Psr\Container\ContainerInterface;
|
|
|
|
class EndpointContainer {
|
|
/** @var ContainerInterface */
|
|
private $container;
|
|
|
|
public function __construct(
|
|
ContainerInterface $container
|
|
) {
|
|
$this->container = $container;
|
|
}
|
|
|
|
public function get(string $class): Endpoint {
|
|
$endpoint = $this->container->get($class);
|
|
if (!$endpoint instanceof Endpoint) {
|
|
throw new InvalidStateException(sprintf("Class '%s' doesn't implement '%s'", $class, Endpoint::class));
|
|
}
|
|
return $endpoint;
|
|
}
|
|
}
|