original_string: public static function client($server_version, $server_hostname,
          $server_port, $server_uri, $changeSessionID = true
      ) {
          phpCAS :: traceBegin();
          if (is_object(self::$_PHPCAS_CLIENT)) {
              phpCAS :: error(self::$_PHPCAS_INIT_CALL['method'] . '() has already been called (at ' . self::$_PHPCAS_INIT_CALL['file'] . ':' . self::$_PHPCAS_INIT_CALL['line'] . ')');
          }
  
          // store where the initializer is called from
          $dbg = debug_backtrace();
          self::$_PHPCAS_INIT_CALL = array (
              'done' => true,
              'file' => $dbg[0]['file'],
              'line' => $dbg[0]['line'],
              'method' => __CLASS__ . '::' . __FUNCTION__
          );
  
          // initialize the object $_PHPCAS_CLIENT
          try {
              self::$_PHPCAS_CLIENT = new CAS_Client(
                  $server_version, false, $server_hostname, $server_port, $server_uri,
                  $changeSessionID
              );
          } catch (Exception $e) {
              phpCAS :: error(get_class($e) . ': ' . $e->getMessage());
          }
          phpCAS :: traceEnd();
      }
code: public static function client($server_version, $server_hostname,
          $server_port, $server_uri, $changeSessionID = true
      ) {
          phpCAS :: traceBegin();
          if (is_object(self::$_PHPCAS_CLIENT)) {
              phpCAS :: error(self::$_PHPCAS_INIT_CALL['method'] . '() has already been called (at ' . self::$_PHPCAS_INIT_CALL['file'] . ':' . self::$_PHPCAS_INIT_CALL['line'] . ')');
          }
  
          // store where the initializer is called from
          $dbg = debug_backtrace();
          self::$_PHPCAS_INIT_CALL = array (
              'done' => true,
              'file' => $dbg[0]['file'],
              'line' => $dbg[0]['line'],
              'method' => __CLASS__ . '::' . __FUNCTION__
          );
  
          // initialize the object $_PHPCAS_CLIENT
          try {
              self::$_PHPCAS_CLIENT = new CAS_Client(
                  $server_version, false, $server_hostname, $server_port, $server_uri,
                  $changeSessionID
              );
          } catch (Exception $e) {
              phpCAS :: error(get_class($e) . ': ' . $e->getMessage());
          }
          phpCAS :: traceEnd();
      }
code_tokens: public static function client ( $ server_version , $ server_hostname , $ server_port , $ server_uri , $ changeSessionID = true ) { phpCAS :: traceBegin ( ) ; if ( is_object ( self :: $ _PHPCAS_CLIENT ) ) { phpCAS :: error ( self :: $ _PHPCAS_INIT_CALL [ 'method' ] . '() has already been called (at ' . self :: $ _PHPCAS_INIT_CALL [ 'file' ] . ':' . self :: $ _PHPCAS_INIT_CALL [ 'line' ] . ')' ) ; } // store where the initializer is called from $ dbg = debug_backtrace ( ) ; self :: $ _PHPCAS_INIT_CALL = array ( 'done' => true , 'file' => $ dbg [ 0 ] [ 'file' ] , 'line' => $ dbg [ 0 ] [ 'line' ] , 'method' => __CLASS__ . '::' . __FUNCTION__ ) ; // initialize the object $_PHPCAS_CLIENT try { self :: $ _PHPCAS_CLIENT = new CAS_Client ( $ server_version , false , $ server_hostname , $ server_port , $ server_uri , $ changeSessionID ) ; } catch ( Exception $ e ) { phpCAS :: error ( get_class ( $ e ) . ': ' . $ e -> getMessage ( ) ) ; } phpCAS :: traceEnd ( ) ; }
docstring: phpCAS client initializer.
  
  @param string $server_version  the version of the CAS server
  @param string $server_hostname the hostname of the CAS server
  @param string $server_port     the port the CAS server is running on
  @param string $server_uri      the URI the CAS server is responding on
  @param bool   $changeSessionID Allow phpCAS to change the session_id (Single
  Sign Out/handleLogoutRequests is based on that change)
  
  @return a newly created CAS_Client object
  @note Only one of the phpCAS::client() and phpCAS::proxy functions should be
  called, only once, and before all other methods (except phpCAS::getVersion()
  and phpCAS::setDebug()).
docstring_tokens: phpCAS client initializer .