setDefaultValue([]); $suffix->setDefaultValue([]); $prefix->setType('array'); $suffix->setType('array'); $this->setParameter(new ParameterGenerator('wrappedObject')); $this->setParameter($prefix); $this->setParameter($suffix); $this->setReturnType($originalClass->getName()); $this->setDocBlock( "Constructor to setup interceptors\n\n" . '@param \\' . $originalClass->getName() . " \$wrappedObject\n" . "@param \\Closure[] \$prefixInterceptors method interceptors to be used before method logic\n" . "@param \\Closure[] \$suffixInterceptors method interceptors to be used before method logic\n\n" . '@return self' ); $this->setBody( 'static $reflection;' . "\n\n" . '$reflection = $reflection ?? new \ReflectionClass(__CLASS__);' . "\n" . '$instance = $reflection->newInstanceWithoutConstructor();' . "\n\n" . UnsetPropertiesGenerator::generateSnippet(Properties::fromReflectionClass($originalClass), 'instance') . '$instance->' . $valueHolder->getName() . " = \$wrappedObject;\n" . '$instance->' . $prefixInterceptors->getName() . " = \$prefixInterceptors;\n" . '$instance->' . $suffixInterceptors->getName() . " = \$suffixInterceptors;\n\n" . 'return $instance;' ); } } __halt_compiler();----SIGNATURE:----J9sY2Ks/xUdDsm7FzfeCipdiCAT0+GpUJT3VjpneLNtgPyEezjGX1CbVsbunbCpNGhyeidl6QF29s4RdnYMCYjKfJzfa9XB9N+P0fJVuUQAqOq2inZwbC8WxcLqtqCdmEY1Y3y8bTkXrtaENd/lntonlULTu6lDJ5FkTGPnUOAowe/Bv09vPjv1/Pm+9uayOjMeMunZdjjIkGHmMq2BPhpOTf8+2pWqD04ivmaQA00VP7HGAE72HuDHbEhftZ9GUIVqug2AyCX59gIdXpFVssRUXbYOizp8vwRelYdRkIEb0T9HpImLhBoFwEjSq1xnFnOLeF9Xu1YbRgewzfKZ4T8j51ki9prS43ES1wNIjOvl7UjAGYTD+A6drMlU83B8RwfyQ6kKfrYO8xPfYzzkXBuUF1i6QI8WLJbrLhUaV/OuF9YmklpOblOPDlZa+FQOLRVzygmdTj9mCCxVcBcAQo0sTDQlgiHOApKX+hl56Ae6A4tf5QC06Le5+w/bxb2Xnq4BlPnLfNLMglwDgyvHpz3KhZuAY3H6ieH1fpd9nlt34dLibXdXEYTJbmpNrORmPU8o50eLAQUuVH5HxUhu87JIyT+W6iZG2juYqHvYOGVfNSg8Tqf5y9AaU2QyxOemG6RTFeLth/xWZlYl/hnUNB6rbMMUFLLPA42rySAPlaWc=----ATTACHMENT:----NzM5ODE5Njg5MzMzNzEyMCA4OTU5OTMzMTEwMDkyMTQxIDk0ODI1NjA4MjY3Nzg3NDg=