code: public function wrap($object)
      {
          foreach ($this->definitions as $proxyDefinition) {
              if ($proxyDefinition->describeProxyFor($object)) {
                  return $this->factory->createProxy($object, $proxyDefinition);
              }
          }
  
          throw new RuntimeException("Can\"t wrap objects that does\"t fit any proxy definition.");
      }
docs: @param $object
  @return WrappedObject
  @throws RuntimeException
  
  @api