container = new Container(); $this->init(); } /** * container initialization */ abstract protected function init(); /** * A static method to register a service */ public static function register(\Pimple\ServiceProviderInterface $service) { self::_instance()->container->register($service); } /** * A static method to get a service * * @param string $service */ public static function get($service) { return self::_instance()->_getFromContainer($service); } /** * Returns the instance of the container * * @return static */ private static function _instance() { if (is_null(self::$instance)) { self::$instance = new Services(); } return self::$instance; } /** * Gets the service from an instanced container. * * @param string $service */ private function _getFromContainer($service) { return $this->container[$service]; } } if (!PKP_STRICT_MODE) { class_alias('\PKP\core\PKPServices', '\PKPServices'); }