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

BaseIndexExtension::onAfterSearch()   A

Complexity

Conditions 4
Paths 2

Size

Total Lines 10
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 10.75

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 7
c 2
b 0
f 0
dl 0
loc 10
ccs 2
cts 8
cp 0.25
rs 10
cc 4
nc 2
nop 1
crap 10.75
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