PHP 8.2.31
Preview: Class_.php Size: 4.36 KB
//opt/cpanel/ea-wappspector/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php

<?php

declare (strict_types=1);
namespace PhpParser\Node\Stmt;

use PhpParser\Error;
use PhpParser\Node;
class Class_ extends \PhpParser\Node\Stmt\ClassLike
{
    const MODIFIER_PUBLIC = 1;
    const MODIFIER_PROTECTED = 2;
    const MODIFIER_PRIVATE = 4;
    const MODIFIER_STATIC = 8;
    const MODIFIER_ABSTRACT = 16;
    const MODIFIER_FINAL = 32;
    const MODIFIER_READONLY = 64;
    const VISIBILITY_MODIFIER_MASK = 7;
    // 1 | 2 | 4
    /** @var int Type */
    public $flags;
    /** @var null|Node\Name Name of extended class */
    public $extends;
    /** @var Node\Name[] Names of implemented interfaces */
    public $implements;
    /**
     * Constructs a class node.
     *
     * @param string|Node\Identifier|null $name Name
     * @param array       $subNodes   Array of the following optional subnodes:
     *                                'flags'       => 0      : Flags
     *                                'extends'     => null   : Name of extended class
     *                                'implements'  => array(): Names of implemented interfaces
     *                                'stmts'       => array(): Statements
     *                                'attrGroups'  => array(): PHP attribute groups
     * @param array       $attributes Additional attributes
     */
    public function __construct($name, array $subNodes = [], array $attributes = [])
    {
        $this->attributes = $attributes;
        $this->flags = $subNodes['flags'] ?? $subNodes['type'] ?? 0;
        $this->name = \is_string($name) ? new Node\Identifier($name) : $name;
        $this->extends = $subNodes['extends'] ?? null;
        $this->implements = $subNodes['implements'] ?? [];
        $this->stmts = $subNodes['stmts'] ?? [];
        $this->attrGroups = $subNodes['attrGroups'] ?? [];
    }
    public function getSubNodeNames() : array
    {
        return ['attrGroups', 'flags', 'name', 'extends', 'implements', 'stmts'];
    }
    /**
     * Whether the class is explicitly abstract.
     *
     * @return bool
     */
    public function isAbstract() : bool
    {
        return (bool) ($this->flags & self::MODIFIER_ABSTRACT);
    }
    /**
     * Whether the class is final.
     *
     * @return bool
     */
    public function isFinal() : bool
    {
        return (bool) ($this->flags & self::MODIFIER_FINAL);
    }
    public function isReadonly() : bool
    {
        return (bool) ($this->flags & self::MODIFIER_READONLY);
    }
    /**
     * Whether the class is anonymous.
     *
     * @return bool
     */
    public function isAnonymous() : bool
    {
        return null === $this->name;
    }
    /**
     * @internal
     */
    public static function verifyClassModifier($a, $b)
    {
        if ($a & self::MODIFIER_ABSTRACT && $b & self::MODIFIER_ABSTRACT) {
            throw new Error('Multiple abstract modifiers are not allowed');
        }
        if ($a & self::MODIFIER_FINAL && $b & self::MODIFIER_FINAL) {
            throw new Error('Multiple final modifiers are not allowed');
        }
        if ($a & self::MODIFIER_READONLY && $b & self::MODIFIER_READONLY) {
            throw new Error('Multiple readonly modifiers are not allowed');
        }
        if ($a & 48 && $b & 48) {
            throw new Error('Cannot use the final modifier on an abstract class');
        }
    }
    /**
     * @internal
     */
    public static function verifyModifier($a, $b)
    {
        if ($a & self::VISIBILITY_MODIFIER_MASK && $b & self::VISIBILITY_MODIFIER_MASK) {
            throw new Error('Multiple access type modifiers are not allowed');
        }
        if ($a & self::MODIFIER_ABSTRACT && $b & self::MODIFIER_ABSTRACT) {
            throw new Error('Multiple abstract modifiers are not allowed');
        }
        if ($a & self::MODIFIER_STATIC && $b & self::MODIFIER_STATIC) {
            throw new Error('Multiple static modifiers are not allowed');
        }
        if ($a & self::MODIFIER_FINAL && $b & self::MODIFIER_FINAL) {
            throw new Error('Multiple final modifiers are not allowed');
        }
        if ($a & self::MODIFIER_READONLY && $b & self::MODIFIER_READONLY) {
            throw new Error('Multiple readonly modifiers are not allowed');
        }
        if ($a & 48 && $b & 48) {
            throw new Error('Cannot use the final modifier on an abstract class member');
        }
    }
    public function getType() : string
    {
        return 'Stmt_Class';
    }
}

Directory Contents

Dirs: 1 × Files: 47

Name Size Perms Modified Actions
- drwxr-xr-x 2024-11-08 13:59:10
Edit Download
699 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
923 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.18 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
2.46 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
3.03 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
4.69 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
4.36 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
698 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
714 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
902 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
887 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
881 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
660 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
888 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
726 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.15 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.56 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
722 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
734 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.65 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.36 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
2.59 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
680 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
760 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.01 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
759 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.35 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
654 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.23 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
722 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.01 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
304 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
2.66 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
974 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
679 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
896 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
693 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
805 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
670 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
903 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
266 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.01 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.13 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
672 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.59 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
1.34 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download
884 B lrw-r--r-- 2024-11-08 13:59:10
Edit Download

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