Completed
Push — master ( b19f6f...ce8116 )
by Axel
05:27
created

SearchModuleInstaller   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 67
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 29
dl 0
loc 67
rs 10
c 0
b 0
f 0
wmc 8

3 Methods

Rating   Name   Duplication   Size   Complexity  
A upgrade() 0 31 6
A install() 0 13 1
A uninstall() 0 9 1
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of the Zikula package.
7
 *
8
 * Copyright Zikula - https://ziku.la/
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13
14
namespace Zikula\SearchModule;
15
16
use Zikula\ExtensionsModule\Installer\AbstractExtensionInstaller;
17
use Zikula\SearchModule\Entity\SearchResultEntity;
18
use Zikula\SearchModule\Entity\SearchStatEntity;
19
20
/**
21
 * Installation routines for the search module.
22
 */
23
class SearchModuleInstaller extends AbstractExtensionInstaller
24
{
25
    /**
26
     * @var array
27
     */
28
    private $entities = [
29
        SearchResultEntity::class,
30
        SearchStatEntity::class
31
    ];
32
33
    public function install(): bool
34
    {
35
        // create schema
36
        $this->schemaTool->create($this->entities);
37
38
        // create module vars
39
        $this->setVar('itemsperpage', 10);
40
        $this->setVar('limitsummary', 255);
41
        $this->setVar('opensearch_enabled', true);
42
        $this->setVar('opensearch_adult_content', false);
43
44
        // Initialisation successful
45
        return true;
46
    }
47
48
    public function upgrade(string $oldVersion): bool
49
    {
50
        // Upgrade dependent on old version number
51
        switch ($oldVersion) {
52
            case '1.5.2':
53
                $this->setVar('opensearch_enabled', true);
54
                $this->setVar('opensearch_adult_content', false);
55
56
                // update schema
57
                $this->schemaTool->update([
58
                    SearchResultEntity::class
59
                ]);
60
            case '1.5.3':
61
                // update schema
62
                $this->schemaTool->update([
63
                    SearchResultEntity::class
64
                ]);
65
            case '1.5.4':
66
                // nothing
67
            case '1.6.0':
68
                // update schema since extra field has been changed from text to array
69
                $this->entityManager->getRepository('ZikulaSearchModule:SearchResultEntity')->truncateTable();
0 ignored issues
show
Bug introduced by
The method truncateTable() does not exist on Doctrine\Persistence\ObjectRepository. It seems like you code against a sub-type of Doctrine\Persistence\ObjectRepository such as Zikula\SearchModule\Enti...sultRepositoryInterface or Zikula\BlocksModule\Enti...ository\BlockRepository or Zikula\UsersModule\Entit...UserAttributeRepository or Zikula\AdminModule\Entit...y\AdminModuleRepository or Zikula\SearchModule\Enti...ry\SearchStatRepository or Doctrine\ORM\EntityRepository or Zikula\Bundle\HookBundle...y\HookBindingRepository or Zikula\CategoriesModule\...egoryRegistryRepository or Zikula\UsersModule\Entit...pository\UserRepository or Zikula\ExtensionsModule\...\ExtensionVarRepository or Zikula\GroupsModule\Enti...ository\GroupRepository or Zikula\MenuModule\Entity...tory\MenuItemRepository or Zikula\GroupsModule\Enti...upApplicationRepository or Zikula\UsersModule\Entit...y\UserSessionRepository or Zikula\ProfileModule\Ent...tory\PropertyRepository or Zikula\ZAuthModule\Entit...cationMappingRepository or Zikula\ExtensionsModule\...ory\ExtensionRepository or Zikula\BlocksModule\Enti...BlockPositionRepository or Zikula\ZAuthModule\Entit...rVerificationRepository or Zikula\Bundle\HookBundle...y\HookRuntimeRepository or Zikula\CategoriesModule\...tory\CategoryRepository or Zikula\AdminModule\Entit...AdminCategoryRepository. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

69
                $this->entityManager->getRepository('ZikulaSearchModule:SearchResultEntity')->/** @scrutinizer ignore-call */ truncateTable();
Loading history...
70
                $this->schemaTool->update([
71
                    SearchResultEntity::class
72
                ]);
73
            case '1.6.1':
74
                // future upgrade routines
75
        }
76
77
        // Update successful
78
        return true;
79
    }
80
81
    public function uninstall(): bool
82
    {
83
        $this->schemaTool->drop($this->entities);
84
85
        // Delete any module variables
86
        $this->delVars();
87
88
        // Deletion successful
89
        return true;
90
    }
91
}
92