Passed
Push — sheepy/introspection ( 69e16c...c6c7ca )
by Marco
05:28
created

BaseIndexExtension::initToYml()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 28
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 3.8204

Importance

Changes 0
Metric Value
eloc 17
c 0
b 0
f 0
dl 0
loc 28
rs 9.7
ccs 3
cts 13
cp 0.2308
cc 2
nc 2
nop 0
crap 3.8204
1
<?php
2
3
namespace Firesphere\SolrSearch\Extensions;
4
5
use Firesphere\SolrSearch\Indexes\BaseIndex;
6
use LogicException;
7
use SilverStripe\Core\Extension;
8
use SilverStripe\Dev\Debug;
9
10
/**
11
 * Class \Firesphere\SolrSearch\Extensions\BaseIndexExtension
12
 *
13
 * @property BaseIndex|BaseIndexExtension $owner
14
 */
15
class BaseIndexExtension extends Extension
16
{
17
    /**
18
     * Generate a yml version of the init method indexes
19
     */
20
    public function initToYml(): void
21
    {
22
        if (function_exists('yaml_emit')) {
23
            /** @var BaseIndex $owner */
24 3
            $owner = $this->owner;
25
            $result = [
26 3
                BaseIndex::class => [
27
                    $owner->getIndexName() =>
28
                        [
29
                            'Classes'        => $owner->getClasses(),
30
                            'FulltextFields' => array_values($owner->getFulltextFields()),
31
                            'SortFields'     => $owner->getSortFields(),
32
                            'FilterFields'   => $owner->getFilterFields(),
33
                            'BoostedFields'  => $owner->getBoostedFields(),
34
                            'CopyFields'     => $owner->getCopyFields(),
35 3
                            'DefaultField'   => $owner->getDefaultField(),
36
                            'FacetFields'    => $owner->getFacetFields(),
37
                            'StoredFields'   => $owner->getStoredFields()
38
                        ]
39
                ]
40
            ];
41
42
            Debug::dump(yaml_emit($result));
43
44
            return;
45
        }
46
47
        throw new LogicException('yaml-emit PHP module missing');
48
    }
49
}
50