code: private function generateProxyClass($class, $fileName, $template)
      {
          $methods = $this->generateMethods($class);
          $sleepImpl = $this->generateSleep($class);
  
          $placeholders = array(
              '<namespace>',
              '<proxyClassName>', '<className>',
              '<methods>', '<sleepImpl>'
          );
  
          $className = ltrim($class->name, '\\');
          $proxyClassName = ClassUtils::generateProxyClassName($class->name, $this->proxyNamespace);
          $parts = explode('\\', strrev($proxyClassName), 2);
          $proxyClassNamespace = strrev($parts[1]);
          $proxyClassName = strrev($parts[0]);
  
          $replacements = array(
              $proxyClassNamespace,
              $proxyClassName,
              $className,
              $methods,
              $sleepImpl
          );
  
          $template = str_replace($placeholders, $replacements, $template);
  
          file_put_contents($fileName, $template, LOCK_EX);
      }
docs: Generates a proxy class file.
  
  @param $class
  @param $fileName
  @param $template