. */ namespace SP\Modules\Web\Controllers\Helpers; use DI\Container; use DI\DependencyException; use DI\NotFoundException; use Psr\Container\ContainerInterface; use SP\Config\Config; use SP\Config\ConfigData; use SP\Core\Context\ContextInterface; use SP\Core\Context\SessionContext; use SP\Core\Events\EventDispatcher; use SP\Http\Request; use SP\Mvc\View\Template; /** * Class HelperBase * * @package SP\Modules\Web\Controllers\Helpers */ abstract class HelperBase { /** * @var Template */ protected $view; /** * @var ConfigData */ protected $configData; /** * @var SessionContext */ protected $context; /** * @var EventDispatcher */ protected $eventDispatcher; /** * @var Config */ protected $config; /** * @var ContainerInterface */ protected $dic; /** * @var Request */ protected $request; /** * Constructor * * @param Template $template * @param Config $config * @param ContextInterface $context * @param EventDispatcher $eventDispatcher * @param Container $container * * @throws DependencyException * @throws NotFoundException */ final public function __construct(Template $template, Config $config, ContextInterface $context, EventDispatcher $eventDispatcher, Container $container) { $this->dic = $container; $this->request = $this->dic->get(Request::class); $this->view = $template; $this->config = $config; $this->configData = $config->getConfigData(); $this->context = $context; $this->eventDispatcher = $eventDispatcher; if (method_exists($this, 'initialize')) { $this->initialize(); } } }