original_string: public static function getInstance()
      {
          $class = get_called_class();
  
          if (!isset(self::$instances[$class])) {
              $container = StaticContainer::getContainer();
  
              $refl = new \ReflectionClass($class);
  
              if (!$refl->getConstructor() || $refl->getConstructor()->isPublic()) {
                  self::$instances[$class] = $container->get($class);
              } else {
                  /** @var LoggerInterface $logger */
                  $logger = $container->get('Psr\Log\LoggerInterface');
  
                  // BC with API defining a protected constructor
                  $logger->notice('The API class {class} defines a protected constructor which is deprecated, make the constructor public instead', array('class' => $class));
                  self::$instances[$class] = new $class;
              }
          }
  
          return self::$instances[$class];
      }
code: public static function getInstance()
      {
          $class = get_called_class();
  
          if (!isset(self::$instances[$class])) {
              $container = StaticContainer::getContainer();
  
              $refl = new \ReflectionClass($class);
  
              if (!$refl->getConstructor() || $refl->getConstructor()->isPublic()) {
                  self::$instances[$class] = $container->get($class);
              } else {
                  /** @var LoggerInterface $logger */
                  $logger = $container->get('Psr\Log\LoggerInterface');
  
                  // BC with API defining a protected constructor
                  $logger->notice('The API class {class} defines a protected constructor which is deprecated, make the constructor public instead', array('class' => $class));
                  self::$instances[$class] = new $class;
              }
          }
  
          return self::$instances[$class];
      }
code_tokens: public static function getInstance ( ) { $ class = get_called_class ( ) ; if ( ! isset ( self :: $ instances [ $ class ] ) ) { $ container = StaticContainer :: getContainer ( ) ; $ refl = new \ ReflectionClass ( $ class ) ; if ( ! $ refl -> getConstructor ( ) || $ refl -> getConstructor ( ) -> isPublic ( ) ) { self :: $ instances [ $ class ] = $ container -> get ( $ class ) ; } else { /** @var LoggerInterface $logger */ $ logger = $ container -> get ( 'Psr\Log\LoggerInterface' ) ; // BC with API defining a protected constructor $ logger -> notice ( 'The API class {class} defines a protected constructor which is deprecated, make the constructor public instead' , array ( 'class' => $ class ) ) ; self :: $ instances [ $ class ] = new $ class ; } } return self :: $ instances [ $ class ] ; }
docstring: Returns the singleton instance for the derived class. If the singleton instance
  has not been created, this method will create it.
  
  @return static
docstring_tokens: Returns the singleton instance for the derived class . If the singleton instance has not been created this method will create it .