Open Monograph Press  3.3.0
PKPServices.inc.php
1 <?php
2 
17 abstract class PKPServices {
18 
20  private static $instance = null;
21 
22  protected $container = null;
23 
27  private function __construct() {
28  $this->container = new Pimple\Container();
29  $this->init();
30  }
31 
35  abstract protected function init();
36 
41  public static function register(Pimple\ServiceProviderInterface $service) {
42  self::_instance()->container->register($service);
43  }
44 
49  public static function get($service) {
50  return self::_instance()->_getFromContainer($service);
51  }
52 
56  private static function _instance() {
57  if (is_null(self::$instance)) {
58  self::$instance = new Services();
59  }
60 
61  return self::$instance;
62  }
63 
68  private function _getFromContainer($service) {
69  return $this->container[$service];
70  }
71 
72 }
PKPServices
Pimple Dependency Injection Container.
Definition: PKPServices.inc.php:17
Services
Pimple Dependency Injection Container.
Definition: Services.inc.php:19
PKPServices\$container
$container
Definition: PKPServices.inc.php:22
PKPServices\init
init()