PHP 8.2.31
Preview: NativeProxyFactory.php Size: 889 B
/opt/cpanel/ea-wappspector/vendor/php-di/php-di/src/Proxy/NativeProxyFactory.php

<?php

declare(strict_types=1);

namespace DI\Proxy;

use LogicException;

/**
 * Uses PHP 8.4+'s native support for lazy proxies to generate proxy objects.
 *
 * @since  7.1
 * @author Buster Neece <buster@busterneece.com>
 */
class NativeProxyFactory implements ProxyFactoryInterface
{
    /**
     * Creates a new lazy proxy instance of the given class with
     * the given initializer.
     *
     * {@inheritDoc}
     */
    public function createProxy(string $className, \Closure $createFunction) : object
    {
        if (\PHP_VERSION_ID < 80400) {
            throw new LogicException('Lazy loading proxies require PHP 8.4 or higher.');
        }

        $reflector = new \ReflectionClass($className);

        return $reflector->newLazyProxy($createFunction);
    }

    public function generateProxyClass(string $className) : void
    {
        // Noop for this type.
    }
}

Directory Contents

Dirs: 0 × Files: 3

Name Size Perms Modified Actions
889 B lrw-r--r-- 2025-08-16 11:10:48
Edit Download
2.96 KB lrw-r--r-- 2025-08-16 11:10:48
Edit Download
913 B lrw-r--r-- 2025-08-16 11:10:48
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).