Spaces:
No application file
No application file
namespace Mautic\EmailBundle\Stats; | |
use Mautic\EmailBundle\Stats\Exception\InvalidStatHelperException; | |
use Mautic\EmailBundle\Stats\Helper\StatHelperInterface; | |
class StatHelperContainer | |
{ | |
/** | |
* @var array<string, StatHelperInterface> | |
*/ | |
private array $helpers = []; | |
public function addHelper(StatHelperInterface $helper): void | |
{ | |
$this->helpers[$helper->getName()] = $helper; | |
} | |
/** | |
* @throws InvalidStatHelperException | |
*/ | |
public function getHelper($name): StatHelperInterface | |
{ | |
if (!isset($this->helpers[$name])) { | |
throw new InvalidStatHelperException($name.' has not been registered'); | |
} | |
return $this->helpers[$name]; | |
} | |
} | |