/**
  * method to register the stream wrapper
  *
  * Please be aware that a call to this method will reset the root element
  * to null.
  * If the stream is already registered the method returns silently. If there
  * is already another stream wrapper registered for the scheme used by
  * vfsStream a vfsStreamException will be thrown.
  *
  * @throws  vfsStreamException
  */
 public static function register()
 {
     self::$root = null;
     if (true === self::$registered) {
         return;
     }
     if (@stream_wrapper_register(vfsStream::SCHEME, __CLASS__) === false) {
         throw new vfsStreamException('A handler has already been registered for the ' . vfsStream::SCHEME . ' protocol.');
     }
     self::$registered = true;
 }