Solr_BuildTask   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 12
dl 0
loc 54
rs 10
c 0
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setLogger() 0 3 1
A run() 0 10 1
A getLoggerFactory() 0 3 1
A getLogger() 0 3 1
1
<?php
2
namespace SilverStripe\FullTextSearch\Solr\Tasks;
3
4
use Monolog\Handler\StreamHandler;
5
use Psr\Log\LoggerInterface;
6
use SilverStripe\Control\HTTPRequest;
7
use SilverStripe\Core\Injector\Injector;
8
use SilverStripe\Dev\BuildTask;
9
use SilverStripe\FullTextSearch\Utils\Logging\SearchLogFactory;
10
11
/**
12
 * Abstract class for build tasks
13
 */
14
class Solr_BuildTask extends BuildTask
15
{
16
    protected $enabled = false;
17
18
    /**
19
     * Logger
20
     *
21
     * @var LoggerInterface
22
     */
23
    protected $logger = null;
24
25
    /**
26
     * Get the monolog logger
27
     *
28
     * @return LoggerInterface
29
     */
30
    public function getLogger()
31
    {
32
        return $this->logger;
33
    }
34
35
    /**
36
     * Assign a new logger
37
     *
38
     * @param LoggerInterface $logger
39
     */
40
    public function setLogger(LoggerInterface $logger)
41
    {
42
        $this->logger = $logger;
43
    }
44
45
    /**
46
     * @return SearchLogFactory
47
     */
48
    protected function getLoggerFactory()
49
    {
50
        return Injector::inst()->get(SearchLogFactory::class);
51
    }
52
53
    /**
54
     * Setup task
55
     *
56
     * @param HTTPRequest $request
57
     */
58
    public function run($request)
59
    {
60
        $name = get_class($this);
61
        $verbose = $request->getVar('verbose');
62
63
        // Set new logger
64
        $logger = $this
65
            ->getLoggerFactory()
66
            ->getOutputLogger($name, $verbose);
67
        $this->setLogger($logger);
68
    }
69
}
70