0x1949 Team - FAZEMRX - MANAGER
Edit File: NullObjectGenerator.php
<?php declare(strict_types=1); namespace ProxyManager\ProxyGenerator; use ProxyManager\Exception\InvalidProxiedClassException; use ProxyManager\Generator\Util\ClassGeneratorUtils; use ProxyManager\Proxy\NullObjectInterface; use ProxyManager\ProxyGenerator\Assertion\CanProxyAssertion; use ProxyManager\ProxyGenerator\NullObject\MethodGenerator\NullObjectMethodInterceptor; use ProxyManager\ProxyGenerator\NullObject\MethodGenerator\StaticProxyConstructor; use ProxyManager\ProxyGenerator\Util\ProxiedMethodsFilter; use ReflectionClass; use Zend\Code\Generator\ClassGenerator; use Zend\Code\Reflection\MethodReflection; /** * Generator for proxies implementing {@see \ProxyManager\Proxy\NullObjectInterface} * * {@inheritDoc} * * @author Vincent Blanchon <blanchon.vincent@gmail.com> * @license MIT */ class NullObjectGenerator implements ProxyGeneratorInterface { /** * {@inheritDoc} * * @throws InvalidProxiedClassException * @throws \Zend\Code\Generator\Exception\InvalidArgumentException */ public function generate(ReflectionClass $originalClass, ClassGenerator $classGenerator) { CanProxyAssertion::assertClassCanBeProxied($originalClass); $interfaces = [NullObjectInterface::class]; if ($originalClass->isInterface()) { $interfaces[] = $originalClass->getName(); } else { $classGenerator->setExtendedClass($originalClass->getName()); } $classGenerator->setImplementedInterfaces($interfaces); foreach (ProxiedMethodsFilter::getProxiedMethods($originalClass, []) as $method) { $classGenerator->addMethodFromGenerator( NullObjectMethodInterceptor::generateMethod( new MethodReflection($method->getDeclaringClass()->getName(), $method->getName()) ) ); } ClassGeneratorUtils::addMethodIfNotFinal( $originalClass, $classGenerator, new StaticProxyConstructor($originalClass) ); } }