PhpSandbox\PHPSandbox::_get_declared_traits PHP Méthode

_get_declared_traits() public méthode

Get PHPSandbox redefined traits in place of get_declared_traits(). This is an internal PHPSandbox function but requires public access to work.
public _get_declared_traits ( array $traits = [] ) : array
$traits array Array result from get_declared_traits() is passed here
Résultat array Returns the redefined traits
    public function _get_declared_traits(array $traits = [])
    {
        if (count($this->whitelist['traits'])) {
            $traits = [];
            foreach ($this->whitelist['traits'] as $name => $value) {
                if (trait_exists($name)) {
                    $traits[strtolower($name)] = $name;
                }
            }
            foreach ($this->definitions['traits'] as $name => $value) {
                if (trait_exists($value)) {
                    $traits[strtolower($name)] = $value;
                }
            }
            return array_values($traits);
        } else {
            if (count($this->blacklist['traits'])) {
                $valid_traits = [];
                foreach ($traits as $trait) {
                    $valid_traits[$this->normalizeTrait($trait)] = $trait;
                }
                foreach ($this->definitions['traits'] as $name => $value) {
                    if (trait_exists($value)) {
                        $valid_traits[$this->normalizeTrait($name)] = $value;
                    }
                }
                foreach ($valid_traits as $index => $name) {
                    if (isset($this->blacklist['traits'][$this->normalizeTrait($name)])) {
                        unset($valid_traits[$index]);
                    }
                }
                return array_values($traits);
            }
        }
        $traits = [];
        foreach ($this->definitions['traits'] as $value) {
            if (trait_exists($value)) {
                $traits[strtolower($value)] = $value;
            }
        }
        return array_values($traits);
    }
PHPSandbox