public function load($var, $level = 1)
 {
     if (!$this->isResource($var)) {
         throw new InvalidVariableTypeException();
     }
     $this->level = $level;
     $this->resourceType = get_resource_type($var);
     $this->resourceId = (int) $var;
     if ($this->resourceType == 'stream') {
         $stream_vars = stream_get_meta_data($var);
         // prevent unix sistems getting stream in files
         if (isset($stream_vars['stream_type']) && $stream_vars['stream_type'] == 'STDIO') {
             $this->resourceType = 'file';
         }
     }
     $this->variableWrapper = new VariableWrapper($this->getResourceType(), $var, VariableWrapper::TYPE_RESOURCE);
     // metadata
     if ($this->metadataResolver->has($this->variableWrapper)) {
         $metadata = $this->metadataResolver->get($this->variableWrapper);
         if (array_key_exists('help_link', $metadata)) {
             $this->helpLink = $metadata['help_link'];
         }
         if (array_key_exists('icon', $metadata)) {
             $this->icon = $metadata['icon'];
         }
         if (array_key_exists('version', $metadata)) {
             $this->version = $metadata['version'];
         }
     }
     // Resource data
     $this->loadData($var);
 }
 public function load($var, $level = 1)
 {
     if (!is_object($var)) {
         throw new InvalidVariableTypeException();
     }
     $this->level = $level;
     $this->className = get_class($var);
     $this->toString = method_exists($var, '__toString') ? $var->__toString() : null;
     if ($this->level < $this->maxLevel) {
         $this->terminal = false;
         $reflectedClass = new \ReflectionClass($this->className);
         // Class info
         $this->loadClassInfo($reflectedClass);
         $this->variableWrapper = new VariableWrapper($this->className, $var, VariableWrapper::TYPE_CLASS);
         // Object data
         $this->loadData($var, $reflectedClass);
         // Class constants
         $this->loadClassConstants($reflectedClass);
         // Object properties
         //$this->loadObjectProperties($reflectedClass);
         // Class methods
         $this->loadClassMethods($reflectedClass);
         // metadata
         if ($this->metadataResolver->has($this->variableWrapper)) {
             $metadata = $this->metadataResolver->get($this->variableWrapper);
             if (array_key_exists('help_link', $metadata)) {
                 $this->helpLink = $metadata['help_link'];
             }
             if (array_key_exists('icon', $metadata)) {
                 $this->icon = $metadata['icon'];
             }
             if (array_key_exists('version', $metadata)) {
                 $this->version = $metadata['version'];
             }
         }
     } else {
         $this->terminal = true;
     }
 }