Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
MethodGenerationHelper
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 createMethod
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace quintenmbusiness\PhpAstCodeGenerationHelper\GeneratorHelpers;
6
7use PhpParser\Builder\Method;
8use PhpParser\BuilderFactory;
9use PhpParser\Node\ComplexType;
10use PhpParser\Node\Identifier;
11use PhpParser\Node\Name;
12
13class MethodGenerationHelper extends VariableGenerationHelper
14{
15    /**
16     * @param BuilderFactory $factory
17     */
18    public function __construct(BuilderFactory $factory)
19    {
20        parent::__construct($factory);
21    }
22
23    /**
24     * @param string $name
25     * @param string $visibility
26     * @param ComplexType|Identifier|Name|string|null $type
27     * @return Method
28     */
29    public function createMethod(string $name, string $visibility = 'public', ComplexType|Identifier|Name|string $type = null): Method
30    {
31        $method = new Method($name);
32
33        $this->addVisibility($method, $visibility);
34
35        if ($type !== null) {
36            $method->setReturnType($type);
37        }
38
39        return $method;
40    }
41}