__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
<?php

declare(strict_types=1);

namespace DI\Definition;

use DI\Definition\Dumper\ObjectDefinitionDumper;
use DI\Definition\ObjectDefinition\MethodInjection;
use DI\Definition\ObjectDefinition\PropertyInjection;
use DI\Definition\Source\DefinitionArray;
use ReflectionClass;

/**
 * Defines how an object can be instantiated.
 *
 * @author Matthieu Napoli <matthieu@mnapoli.fr>
 */
class ObjectDefinition implements Definition
{
    /**
     * Entry name (most of the time, same as $classname).
     */
    private string $name;

    /**
     * Class name (if null, then the class name is $name).
     */
    protected ?string $className = null;

    protected ?MethodInjection $constructorInjection = null;

    protected array $propertyInjections = [];

    /**
     * Method calls.
     * @var MethodInjection[][]
     */
    protected array $methodInjections = [];

    protected ?bool $lazy = null;

    /**
     * Store if the class exists. Storing it (in cache) avoids recomputing this.
     */
    private bool $classExists;

    /**
     * Store if the class is instantiable. Storing it (in cache) avoids recomputing this.
     */
    private bool $isInstantiable;

    /**
     * @param string $name Entry name
     */
    public function __construct(string $name, string $className = null)
    {
        $this->name = $name;
        $this->setClassName($className);
    }

    public function getName() : string
    {
        return $this->name;
    }

    public function setName(string $name) : void
    {
        $this->name = $name;
    }

    public function setClassName(?string $className) : void
    {
        $this->className = $className;

        $this->updateCache();
    }

    public function getClassName() : string
    {
        return $this->className ?? $this->name;
    }

    public function getConstructorInjection() : ?MethodInjection
    {
        return $this->constructorInjection;
    }

    public function setConstructorInjection(MethodInjection $constructorInjection) : void
    {
        $this->constructorInjection = $constructorInjection;
    }

    public function completeConstructorInjection(MethodInjection $injection) : void
    {
        if ($this->constructorInjection !== null) {
            // Merge
            $this->constructorInjection->merge($injection);
        } else {
            // Set
            $this->constructorInjection = $injection;
        }
    }

    /**
     * @return PropertyInjection[] Property injections
     */
    public function getPropertyInjections() : array
    {
        return $this->propertyInjections;
    }

    public function addPropertyInjection(PropertyInjection $propertyInjection) : void
    {
        $className = $propertyInjection->getClassName();
        if ($className) {
            // Index with the class name to avoid collisions between parent and
            // child private properties with the same name
            $key = $className . '::' . $propertyInjection->getPropertyName();
        } else {
            $key = $propertyInjection->getPropertyName();
        }

        $this->propertyInjections[$key] = $propertyInjection;
    }

    /**
     * @return MethodInjection[] Method injections
     */
    public function getMethodInjections() : array
    {
        // Return array leafs
        $injections = [];
        array_walk_recursive($this->methodInjections, function ($injection) use (&$injections) {
            $injections[] = $injection;
        });

        return $injections;
    }

    public function addMethodInjection(MethodInjection $methodInjection) : void
    {
        $method = $methodInjection->getMethodName();
        if (! isset($this->methodInjections[$method])) {
            $this->methodInjections[$method] = [];
        }
        $this->methodInjections[$method][] = $methodInjection;
    }

    public function completeFirstMethodInjection(MethodInjection $injection) : void
    {
        $method = $injection->getMethodName();

        if (isset($this->methodInjections[$method][0])) {
            // Merge
            $this->methodInjections[$method][0]->merge($injection);
        } else {
            // Set
            $this->addMethodInjection($injection);
        }
    }

    public function setLazy(bool $lazy = null) : void
    {
        $this->lazy = $lazy;
    }

    public function isLazy() : bool
    {
        if ($this->lazy !== null) {
            return $this->lazy;
        }

        // Default value
        return false;
    }

    public function classExists() : bool
    {
        return $this->classExists;
    }

    public function isInstantiable() : bool
    {
        return $this->isInstantiable;
    }

    public function replaceNestedDefinitions(callable $replacer) : void
    {
        array_walk($this->propertyInjections, function (PropertyInjection $propertyInjection) use ($replacer) {
            $propertyInjection->replaceNestedDefinition($replacer);
        });

        $this->constructorInjection?->replaceNestedDefinitions($replacer);

        array_walk($this->methodInjections, function ($injectionArray) use ($replacer) {
            array_walk($injectionArray, function (MethodInjection $methodInjection) use ($replacer) {
                $methodInjection->replaceNestedDefinitions($replacer);
            });
        });
    }

    /**
     * Replaces all the wildcards in the string with the given replacements.
     *
     * @param string[] $replacements
     */
    public function replaceWildcards(array $replacements) : void
    {
        $className = $this->getClassName();

        foreach ($replacements as $replacement) {
            $pos = strpos($className, DefinitionArray::WILDCARD);
            if ($pos !== false) {
                $className = substr_replace($className, $replacement, $pos, 1);
            }
        }

        $this->setClassName($className);
    }

    public function __toString() : string
    {
        return (new ObjectDefinitionDumper)->dump($this);
    }

    private function updateCache() : void
    {
        $className = $this->getClassName();

        $this->classExists = class_exists($className) || interface_exists($className);

        if (! $this->classExists) {
            $this->isInstantiable = false;

            return;
        }

        /** @var class-string $className */
        $class = new ReflectionClass($className);
        $this->isInstantiable = $class->isInstantiable();
    }
}

Filemanager

Name Type Size Permission Actions
Dumper Folder 0777
Exception Folder 0777
Helper Folder 0777
ObjectDefinition Folder 0777
Resolver Folder 0777
Source Folder 0777
ArrayDefinition.php File 1.31 KB 0777
ArrayDefinitionExtension.php File 1017 B 0777
AutowireDefinition.php File 170 B 0777
DecoratorDefinition.php File 782 B 0777
Definition.php File 847 B 0777
EnvironmentVariableDefinition.php File 2.5 KB 0777
ExtendsPreviousDefinition.php File 323 B 0777
FactoryDefinition.php File 1.72 KB 0777
InstanceDefinition.php File 1.12 KB 0777
ObjectDefinition.php File 6.29 KB 0777
Reference.php File 1.29 KB 0777
SelfResolvingDefinition.php File 528 B 0777
StringDefinition.php File 2.21 KB 0777
ValueDefinition.php File 1.11 KB 0777
Filemanager