/** * @param null|ConfigInterface|ContainerInterface $configOrContainerInstance * @param array $v3config If $configOrContainerInstance is a container, this * value will be passed to the parent constructor. */ public function __construct($configOrContainerInstance = null, array $v3config = []) { $this->initializers[] = function ($first, $second) { // v2 vs v3 argument order if ($first instanceof ContainerInterface) { // v3 $container = $first; $instance = $second; } else { // v2 $container = $second; $instance = $first; } if (!$instance instanceof AbstractHelper) { return; } // This initializer was written with v2 functionality in mind; as such, // we need to test and see if we're called in a v2 context, and, if so, // set the service locator to the parent locator. // // Under v3, the parent locator is what is passed to the method already. if (!method_exists($container, 'configure') && $container->getServiceLocator()) { $container = $container->getServiceLocator(); } $instance->setServiceLocator($container); }; parent::__construct($configOrContainerInstance, $v3config); }
/** * @param null|ConfigInterface|ContainerInterface $configOrContainerInstance * @param array $v3config If $configOrContainerInstance is a container, this * value will be passed to the parent constructor. */ public function __construct($configOrContainerInstance = null, array $v3config = []) { $this->initializers[] = function ($container, $instance) { if (!$instance instanceof AbstractHelper) { return; } $instance->setServiceLocator($container); }; parent::__construct($configOrContainerInstance, $v3config); }