original_string: public static function instance( $tpl = null, $module = null, $params = null, $className = null )
      {
          $object = null;
          if ( is_null( $className ) )
          {
              $ini = eZINI::instance( 'ezcomments.ini' );
              $className = $ini->variable( 'ManagerClasses', 'SubscriptionManagerClass' );
          }
  
          if ( !is_null( self::$instance ) )
          {
              $object = self::$instance;
          }
          else
          {
              $object = new $className();
              $object->tpl = $tpl;
              $object->module = $module;
              $object->params = $params;
          }
          return $object;
      }
code: public static function instance( $tpl = null, $module = null, $params = null, $className = null )
      {
          $object = null;
          if ( is_null( $className ) )
          {
              $ini = eZINI::instance( 'ezcomments.ini' );
              $className = $ini->variable( 'ManagerClasses', 'SubscriptionManagerClass' );
          }
  
          if ( !is_null( self::$instance ) )
          {
              $object = self::$instance;
          }
          else
          {
              $object = new $className();
              $object->tpl = $tpl;
              $object->module = $module;
              $object->params = $params;
          }
          return $object;
      }
code_tokens: public static function instance ( $ tpl = null , $ module = null , $ params = null , $ className = null ) { $ object = null ; if ( is_null ( $ className ) ) { $ ini = eZINI :: instance ( 'ezcomments.ini' ) ; $ className = $ ini -> variable ( 'ManagerClasses' , 'SubscriptionManagerClass' ) ; } if ( ! is_null ( self :: $ instance ) ) { $ object = self :: $ instance ; } else { $ object = new $ className ( ) ; $ object -> tpl = $ tpl ; $ object -> module = $ module ; $ object -> params = $ params ; } return $ object ; }
docstring: method for creating object
  @return ezcomSubscriptionManager
docstring_tokens: method for creating object