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:----dvYQQt4Z8ge+r5mo1Zj72Jwkx8dHK67puBqlg+D1MV/qo9ejcYIgnGDJQ7H/g0xQ36/ZZWTUqWoiKWDDVEPPWsSeiBceuUk5JlHYr5V21QJmmInSiRfwxRIVD+Sh30jFMVBdSdroUljqglRumi1yU/noZaxoofb7JDn8C9zrpmkcvcKKowLj1Iduhj/MrNZ5m/MTJk7OBKYO2uDO1Y2z5PeMPApKQJv9sCbkHCW1tgAyLaBpBctWoGCEezUuB1zmWmgOJfHXvsiyc7iDFDkPSjUfbBYTFajAGYcyXA1QFpYK5D7bcY4KsD5DjAY/pEQXaNmTxP1d33fDO/qOuHdY6OQRmzzscwvZ2Ds6FqRTenYMbRrL7Yor7PIJ9Kep6Sn+/REUiycTf9q9WI2m2b8f+kZPU7SZ/iTqyZV3un0JKgNmLsV4ZgNF3li6Lq6CKG2lqkDki7sVVG4F+QNz6S0SzCQucBb97zuiTcMq5VJaBrSqPgJItga0ye3xkShnwfk4u45/8XoPjP7t/OeRr+X3ozySXR1Icd3VotBWjMNNtwrTYmxmW/ateattHFmPhTWx9sz88+sVeSucW+CB8TvRBI1MqCGk6jyqRaqeRnWKYPyuGUWBD2Hoj+kFS/YvTcRlrqHPh12qpJPggG2W9wgDvsyddx3WVLMddOO54DmWBmU=----ATTACHMENT:----NzY2NjUwMTc5MTc1ODAyIDQ2MzA3MTc4NTcyNzU1NTAgODI5MTkzNzc3MTY1OTcxOQ==