code: private function generateProxy($className)
      {
          if (isset($this->checkedClasses[$className])) {
              return $this->checkedClasses[$className];
          }
  
          $proxyParameters = array(
              'className'           => $className,
              'factory'             => get_class($this),
              'proxyManagerVersion' => Version::VERSION
          );
          $proxyClassName  = $this
              ->configuration
              ->getClassNameInflector()
              ->getProxyClassName($className, $proxyParameters);
  
          $this->generateProxyClass($proxyClassName, $className, $proxyParameters);
  
          $this
              ->configuration
              ->getSignatureChecker()
              ->checkSignature(new ReflectionClass($proxyClassName), $proxyParameters);
  
          return $this->checkedClasses[$className] = $proxyClassName;
      }
docs: Generate a proxy from a class name
  @param  string $className
  @return string proxy class name