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:----BEj/hYw17LE8ftkdgnDL0yk/M2nH6F3I2tVHcQwAPrHMQSJ4gWbYWtJjJxp2kL08z5lLsc+GWAovfkLmFu7ZHrdYtILJvzesqVEusH7NUqTuuFTY0/5pv7rfLa4GXT3CMyFZ+y7QWIrzmltAWAgH/pTLV4kcAwPR28HQ9T1a65FLOTDXpAIPNFC7KAHIcxugO77QTZz2uBsxu0d5aYBlH/CfhYqpQOXTeMWtuNdLELnGtbnmyWIslyjWV+qPllyNi4QuVzYUAQPxLfDJWMkLPa2eHIAPd5bMETrsFqwE+Qw4aAjWFlz4lezpCc0dJDYi3m18CAWynvKc4ylziQsyWlfX04wIilch5tci46Sie/2kCSFnTMcH9ehKHtBU4715dtjhhVMOmGK8NxKRlu9hTv8W6bO5PVlvGPCz27038iVESYMFdA5MEgUYqzPqQoIX1KhH+y6uzFM/bDtbJ2BwyprblmsEayaNPkIJxAu5R3tEDx2wR89nRUAnj7oTvnCTZwRsMY9lZaYDI3/wDH9aJHlreOk+eXU7M0/tBAY+LQV3h9Ll6tLfsRDz3nR+ngleWA/UgBbtbH+D+zDYuypyx1R54X8MOX4TidyG81q+DMD+GY08e39svjv2YN+Y5ygmsz0wPSJmsh1aYOo0FEH93iXaL1Yi0CPt+9q+QNXrCv8=----ATTACHMENT:----Njg0MzEwNDE2MDgzMzkxMCA3ODY2MDI3NzQ0NDk4ODEgMTQyOTY5NzEyOTE2ODc1OQ==