nginxsonarrradarrplexorganizrdashboardbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbget
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							128 lines
						
					
					
						
							2.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							128 lines
						
					
					
						
							2.9 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								namespace PhpParser\Builder;
							 | 
						|
								
							 | 
						|
								use PhpParser;
							 | 
						|
								use PhpParser\Node;
							 | 
						|
								use PhpParser\Node\Stmt;
							 | 
						|
								
							 | 
						|
								class Method extends FunctionLike
							 | 
						|
								{
							 | 
						|
								    protected $name;
							 | 
						|
								    protected $flags = 0;
							 | 
						|
								
							 | 
						|
								    /** @var array|null */
							 | 
						|
								    protected $stmts = array();
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Creates a method builder.
							 | 
						|
								     *
							 | 
						|
								     * @param string $name Name of the method
							 | 
						|
								     */
							 | 
						|
								    public function __construct($name) {
							 | 
						|
								        $this->name = $name;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Makes the method public.
							 | 
						|
								     *
							 | 
						|
								     * @return $this The builder instance (for fluid interface)
							 | 
						|
								     */
							 | 
						|
								    public function makePublic() {
							 | 
						|
								        $this->setModifier(Stmt\Class_::MODIFIER_PUBLIC);
							 | 
						|
								
							 | 
						|
								        return $this;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Makes the method protected.
							 | 
						|
								     *
							 | 
						|
								     * @return $this The builder instance (for fluid interface)
							 | 
						|
								     */
							 | 
						|
								    public function makeProtected() {
							 | 
						|
								        $this->setModifier(Stmt\Class_::MODIFIER_PROTECTED);
							 | 
						|
								
							 | 
						|
								        return $this;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Makes the method private.
							 | 
						|
								     *
							 | 
						|
								     * @return $this The builder instance (for fluid interface)
							 | 
						|
								     */
							 | 
						|
								    public function makePrivate() {
							 | 
						|
								        $this->setModifier(Stmt\Class_::MODIFIER_PRIVATE);
							 | 
						|
								
							 | 
						|
								        return $this;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Makes the method static.
							 | 
						|
								     *
							 | 
						|
								     * @return $this The builder instance (for fluid interface)
							 | 
						|
								     */
							 | 
						|
								    public function makeStatic() {
							 | 
						|
								        $this->setModifier(Stmt\Class_::MODIFIER_STATIC);
							 | 
						|
								
							 | 
						|
								        return $this;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Makes the method abstract.
							 | 
						|
								     *
							 | 
						|
								     * @return $this The builder instance (for fluid interface)
							 | 
						|
								     */
							 | 
						|
								    public function makeAbstract() {
							 | 
						|
								        if (!empty($this->stmts)) {
							 | 
						|
								            throw new \LogicException('Cannot make method with statements abstract');
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        $this->setModifier(Stmt\Class_::MODIFIER_ABSTRACT);
							 | 
						|
								        $this->stmts = null; // abstract methods don't have statements
							 | 
						|
								
							 | 
						|
								        return $this;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Makes the method final.
							 | 
						|
								     *
							 | 
						|
								     * @return $this The builder instance (for fluid interface)
							 | 
						|
								     */
							 | 
						|
								    public function makeFinal() {
							 | 
						|
								        $this->setModifier(Stmt\Class_::MODIFIER_FINAL);
							 | 
						|
								
							 | 
						|
								        return $this;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Adds a statement.
							 | 
						|
								     *
							 | 
						|
								     * @param Node|PhpParser\Builder $stmt The statement to add
							 | 
						|
								     *
							 | 
						|
								     * @return $this The builder instance (for fluid interface)
							 | 
						|
								     */
							 | 
						|
								    public function addStmt($stmt) {
							 | 
						|
								        if (null === $this->stmts) {
							 | 
						|
								            throw new \LogicException('Cannot add statements to an abstract method');
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        $this->stmts[] = $this->normalizeNode($stmt);
							 | 
						|
								
							 | 
						|
								        return $this;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Returns the built method node.
							 | 
						|
								     *
							 | 
						|
								     * @return Stmt\ClassMethod The built method node
							 | 
						|
								     */
							 | 
						|
								    public function getNode() {
							 | 
						|
								        return new Stmt\ClassMethod($this->name, array(
							 | 
						|
								            'flags'      => $this->flags,
							 | 
						|
								            'byRef'      => $this->returnByRef,
							 | 
						|
								            'params'     => $this->params,
							 | 
						|
								            'returnType' => $this->returnType,
							 | 
						|
								            'stmts'      => $this->stmts,
							 | 
						|
								        ), $this->attributes);
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |