setExtendedClass($originalClass->getName()); $classGenerator->setImplementedInterfaces([AccessInterceptorInterface::class]); $classGenerator->addPropertyFromGenerator($prefixInterceptors = new MethodPrefixInterceptors()); $classGenerator->addPropertyFromGenerator($suffixInterceptors = new MethodSuffixInterceptors()); array_map( static function (MethodGenerator $generatedMethod) use ($originalClass, $classGenerator): void { ClassGeneratorUtils::addMethodIfNotFinal($originalClass, $classGenerator, $generatedMethod); }, array_merge( array_map( $this->buildMethodInterceptor($prefixInterceptors, $suffixInterceptors), ProxiedMethodsFilter::getProxiedMethods( $originalClass, ['__get', '__set', '__isset', '__unset', '__clone', '__sleep'] ) ), [ new StaticProxyConstructor($originalClass), new BindProxyProperties($originalClass, $prefixInterceptors, $suffixInterceptors), new SetMethodPrefixInterceptor($prefixInterceptors), new SetMethodSuffixInterceptor($suffixInterceptors), new MagicGet($originalClass, $prefixInterceptors, $suffixInterceptors), new MagicSet($originalClass, $prefixInterceptors, $suffixInterceptors), new MagicIsset($originalClass, $prefixInterceptors, $suffixInterceptors), new MagicUnset($originalClass, $prefixInterceptors, $suffixInterceptors), new MagicSleep($originalClass, $prefixInterceptors, $suffixInterceptors), new MagicClone($originalClass, $prefixInterceptors, $suffixInterceptors), ] ) ); } private function buildMethodInterceptor( MethodPrefixInterceptors $prefixInterceptors, MethodSuffixInterceptors $suffixInterceptors ): callable { return static function (ReflectionMethod $method) use ($prefixInterceptors, $suffixInterceptors): InterceptedMethod { return InterceptedMethod::generateMethod( new MethodReflection($method->getDeclaringClass()->getName(), $method->getName()), $prefixInterceptors, $suffixInterceptors ); }; } } __halt_compiler();----SIGNATURE:----g/A6bRPyRNLRGKSZY0RmzQuUEjJQD/MFZXx/zrowzqtU8mYMWbmvkFkqLUJKu5GAHDkYSXAMgCnVo2r42SlcqLPnjWknvbhGZ5H19/x0zL43f5L84RTt9UfdGDLMLxlR8ZI/QcUnbQnHy7y/MdXVSsMDxLy5mWwsr4JbonrR4DX49hc/SPlIz6MDWX8AUME4fLOS94Fk3kaIxJi6ZgBxO2vzJSRnt8rY61scVfcnDgeAwhTr8jh2mEitPtDCRnCQ98lRf/JpSSL4YrQOmuGcwwt/FIF96KGpWWECq2WfC+2OTgnF3VNjW3RhTuIzg7FGdm1pRIKRuoJG2dAij/sPKCMTWGl8FemGCaA41xlkMht3LbxPb7FNeoDYcqJaQp2mno75qK2zdGL27etgxKhTf+hht4uKjPo+tQIYEPo6NLhFOZi7EPCrAYortDp1o8H+sYUYuuYN10zGCuih41/Sj74sM0wNZ56ths/4FtYx1VU4MJ76CkmPQphAVP24AulGX7fUb3iEq/mB88LcqtqPA4ZDFIOU2f8hOZYpJAm8rszBwMH/nhmO9oFjINNK31TZHFxVHJonvGo14tT86Vgozbp/IHf4G+wzRoVukXmS5WUT9gpAgVoERDO8ZQCDZPc12mCDjbKepE/sLDRcbQj+vx49fJxrVTDo5/QOVwzEDVk=----ATTACHMENT:----NDgyOTY0NTgxMjUwMzYzOSAzMjk5NDA5MDI1MDU4NTM4IDcwNTIxMzk1MDIxMzgxNzQ=