Passed
Push — master ( ed2578...021b18 )
by Anton
05:05
created

AnnotatedBootloader::entities()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 1
1
<?php
2
/**
3
 * Spiral Framework.
4
 *
5
 * @license   MIT
6
 * @author    Anton Titov (Wolfy-J)
7
 */
8
declare(strict_types=1);
9
10
namespace Spiral\Bootloader\Cycle;
11
12
use Cycle\Annotated;
13
use Spiral\Boot\Bootloader\Bootloader;
14
use Spiral\Boot\Bootloader\DependedInterface;
15
use Spiral\Tokenizer\ClassesInterface;
16
17
final class AnnotatedBootloader extends Bootloader implements DependedInterface
18
{
19
    public const BINDINGS = [
20
        // annotated entities
21
        Annotated\Embeddings::class   => [self::class, 'embeddings'],
22
        Annotated\Entities::class     => [self::class, 'entities'],
23
        Annotated\MergeColumns::class => [self::class, 'mergeColumns'],
24
        Annotated\MergeIndexes::class => [self::class, 'mergeIndexes'],
25
    ];
26
27
    /**
28
     * @param SchemaBootloader $cycle
29
     */
30
    public function boot(SchemaBootloader $cycle)
31
    {
32
        $cycle->addGenerator(SchemaBootloader::GROUP_INDEX, Annotated\Embeddings::class);
33
        $cycle->addGenerator(SchemaBootloader::GROUP_INDEX, Annotated\Entities::class);
34
        $cycle->addGenerator(SchemaBootloader::GROUP_INDEX, Annotated\MergeColumns::class);
35
        $cycle->addGenerator(SchemaBootloader::GROUP_RENDER, Annotated\MergeIndexes::class);
36
    }
37
38
    /**
39
     * @return array
40
     */
41
    public function defineDependencies(): array
42
    {
43
        return [
44
            SchemaBootloader::class
45
        ];
46
    }
47
48
    /**
49
     * @param ClassesInterface $classes
50
     * @return Annotated\Embeddings
51
     */
52
    protected function embeddings(ClassesInterface $classes): Annotated\Embeddings
53
    {
54
        return new Annotated\Embeddings($classes);
55
    }
56
57
    /**
58
     * @param ClassesInterface $classes
59
     * @return Annotated\Entities
60
     */
61
    protected function entities(ClassesInterface $classes): Annotated\Entities
62
    {
63
        return new Annotated\Entities($classes);
64
    }
65
66
    /**
67
     * @return Annotated\MergeColumns
68
     */
69
    protected function mergeColumns(): Annotated\MergeColumns
70
    {
71
        return new Annotated\MergeColumns();
72
    }
73
74
    /**
75
     * @return Annotated\MergeIndexes
76
     */
77
    protected function mergeIndexes(): Annotated\MergeIndexes
78
    {
79
        return new Annotated\MergeIndexes();
80
    }
81
}