Вход Регистрация
Файл: vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php
Строк: 132
<?php

declare(strict_types=1);

namespace 
PhpParserBuilder;

use 
PhpParser;
use 
PhpParserBuilderHelpers;
use 
PhpParserNode;
use 
PhpParserNodeConst_;
use 
PhpParserNodeIdentifier;
use 
PhpParserNodeStmt;

class 
ClassConst implements PhpParserBuilder
{
    protected 
$flags 0;
    protected 
$attributes = [];
    protected 
$constants = [];

    
/** @var NodeAttributeGroup[] */
    
protected $attributeGroups = [];

    
/**
     * Creates a class constant builder
     *
     * @param string|Identifier                          $name  Name
     * @param NodeExpr|bool|null|int|float|string|array $value Value
     */
    
public function __construct($name$value) {
        
$this->constants = [new Const_($nameBuilderHelpers::normalizeValue($value))];
    }

    
/**
     * Add another constant to const group
     *
     * @param string|Identifier                          $name  Name
     * @param NodeExpr|bool|null|int|float|string|array $value Value
     *
     * @return $this The builder instance (for fluid interface)
     */
    
public function addConst($name$value) {
        
$this->constants[] = new Const_($nameBuilderHelpers::normalizeValue($value));

        return 
$this;
    }

    
/**
     * Makes the constant public.
     *
     * @return $this The builder instance (for fluid interface)
     */
    
public function makePublic() {
        
$this->flags BuilderHelpers::addModifier($this->flagsStmtClass_::MODIFIER_PUBLIC);

        return 
$this;
    }

    
/**
     * Makes the constant protected.
     *
     * @return $this The builder instance (for fluid interface)
     */
    
public function makeProtected() {
        
$this->flags BuilderHelpers::addModifier($this->flagsStmtClass_::MODIFIER_PROTECTED);

        return 
$this;
    }

    
/**
     * Makes the constant private.
     *
     * @return $this The builder instance (for fluid interface)
     */
    
public function makePrivate() {
        
$this->flags BuilderHelpers::addModifier($this->flagsStmtClass_::MODIFIER_PRIVATE);

        return 
$this;
    }

    
/**
     * Makes the constant final.
     *
     * @return $this The builder instance (for fluid interface)
     */
    
public function makeFinal() {
        
$this->flags BuilderHelpers::addModifier($this->flagsStmtClass_::MODIFIER_FINAL);

        return 
$this;
    }

    
/**
     * Sets doc comment for the constant.
     *
     * @param PhpParserCommentDoc|string $docComment Doc comment to set
     *
     * @return $this The builder instance (for fluid interface)
     */
    
public function setDocComment($docComment) {
        
$this->attributes = [
            
'comments' => [BuilderHelpers::normalizeDocComment($docComment)]
        ];

        return 
$this;
    }

    
/**
     * Adds an attribute group.
     *
     * @param NodeAttribute|NodeAttributeGroup $attribute
     *
     * @return $this The builder instance (for fluid interface)
     */
    
public function addAttribute($attribute) {
        
$this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);

        return 
$this;
    }

    
/**
     * Returns the built class node.
     *
     * @return StmtClassConst The built constant node
     */
    
public function getNode(): PhpParserNode {
        return new 
StmtClassConst(
            
$this->constants,
            
$this->flags,
            
$this->attributes,
            
$this->attributeGroups
        
);
    }
}
Онлайн: 0
Реклама