PostConstructPointCut   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 19
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 1
lcom 1
cbo 4
dl 0
loc 19
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A configure() 0 8 1
1
<?php
2
declare(strict_types=1);
3
4
/**
5
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
8
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
9
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
10
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
11
 * THE SOFTWARE.
12
 *
13
 * This software consists of voluntary contributions made by many individuals
14
 * and is licensed under the MIT license.
15
 *
16
 * Copyright (c) 2015-2020 Yuuki Takezawa
17
 *
18
 */
19
20
namespace Ytake\LaravelAspect\PointCut;
21
22
use Ray\Aop\Matcher;
23
use Ray\Aop\Pointcut;
24
use Illuminate\Contracts\Container\Container;
25
use Ytake\LaravelAspect\Annotation\PostConstruct;
26
use Ytake\LaravelAspect\Matcher\AnnotationScanMatcher;
27
28
/**
29
 * Class PostConstructPointCut
30
 */
31
class PostConstructPointCut extends CommonPointCut implements PointCutable
32
{
33
    /** @var string */
34
    protected $annotation = PostConstruct::class;
35
36
    /**
37
     * @param Container $app
38
     *
39
     * @return \Ray\Aop\Pointcut
40
     */
41
    public function configure(Container $app): Pointcut
42
    {
43
        return new Pointcut(
44
            new AnnotationScanMatcher($this->annotation),
45
            (new Matcher)->any(),
46
            []
47
        );
48
    }
49
}
50