Passed
Pull Request — master (#427)
by
unknown
03:22
created

Base::unserialize()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 2
nop 1
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * PAYONE Magento 2 Connector is free software: you can redistribute it and/or modify
5
 * it under the terms of the GNU Lesser General Public License as published by
6
 * the Free Software Foundation, either version 3 of the License, or
7
 * (at your option) any later version.
8
 *
9
 * PAYONE Magento 2 Connector is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
 * GNU Lesser General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU Lesser General Public License
15
 * along with PAYONE Magento 2 Connector. If not, see <http://www.gnu.org/licenses/>.
16
 *
17
 * PHP version 5
18
 *
19
 * @category  Payone
20
 * @package   Payone_Magento2_Plugin
21
 * @author    FATCHIP GmbH <[email protected]>
22
 * @copyright 2003 - 2016 Payone GmbH
23
 * @license   <http://www.gnu.org/licenses/> GNU Lesser General Public License
24
 * @link      http://www.payone.de
25
 */
26
27
namespace Payone\Core\Helper;
28
29
use Magento\Store\Model\ScopeInterface;
0 ignored issues
show
Bug introduced by
The type Magento\Store\Model\ScopeInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
30
31
/**
32
 * Helper base class
33
 */
34
class Base extends \Magento\Framework\App\Helper\AbstractHelper
0 ignored issues
show
Bug introduced by
The type Magento\Framework\App\Helper\AbstractHelper was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
35
{
36
    /**
37
     * Store manager object
38
     *
39
     * @var \Magento\Store\Model\StoreManagerInterface
0 ignored issues
show
Bug introduced by
The type Magento\Store\Model\StoreManagerInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
40
     */
41
    protected $storeManager;
42
43
    /**
44
     * PAYONE shop helper
45
     *
46
     * @var \Payone\Core\Helper\Shop
47
     */
48
    protected $shopHelper;
49
50
    /**
51
     * Constructor
52
     *
53
     * @param \Magento\Framework\App\Helper\Context      $context
54
     * @param \Magento\Store\Model\StoreManagerInterface $storeManager
55
     * @param \Payone\Core\Helper\Shop                   $shopHelper
56
     */
57
    public function __construct(
58
        \Magento\Framework\App\Helper\Context $context,
0 ignored issues
show
Bug introduced by
The type Magento\Framework\App\Helper\Context was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
59
        \Magento\Store\Model\StoreManagerInterface $storeManager,
60
        \Payone\Core\Helper\Shop $shopHelper
61
    ) {
62
        parent::__construct($context);
63
        $this->storeManager = $storeManager;
64
        $this->shopHelper = $shopHelper;
65
    }
66
67
    /**
68
     * Helper method to get parameter from the config
69
     * divided by the config path elements
70
     *
71
     * @param  string $sKey
72
     * @param  string $sGroup
73
     * @param  string $sSection
74
     * @param  string $sStoreCode
75
     * @return string
76
     */
77
    public function getConfigParam($sKey, $sGroup = 'global', $sSection = 'payone_general', $sStoreCode = null)
78
    {
79
        if (!$sStoreCode) {
80
            $sStoreCode = $this->storeManager->getStore()->getCode();
81
        }
82
        $sPath = $sSection."/".$sGroup."/".$sKey;
83
        return $this->getConfigParamByPath($sPath, $sStoreCode);
84
    }
85
86
87
    /**
88
     * Helper method to get parameter from the config by path
89
     *
90
     * @param  string $sPath
91
     * @param  string $sStoreCode
92
     * @return string
93
     */
94
    public function getConfigParamByPath($sPath, $sStoreCode = null)
95
    {
96
        if (!$sStoreCode) {
97
            $sStoreCode = $this->storeManager->getStore()->getCode();
98
        }
99
        return $this->scopeConfig->getValue($sPath, ScopeInterface::SCOPE_STORES, $sStoreCode);
100
    }
101
102
    /**
103
     * Get a certain config param for all available stores
104
     *
105
     * @param  string $sKey
106
     * @param  string $sGroup
107
     * @param  string $sSection
108
     * @return array
109
     */
110
    public function getConfigParamAllStores($sKey, $sGroup = 'global', $sSection = 'payone_general')
111
    {
112
        $aValues = [];
113
        $aShopIds = $this->storeManager->getStores(false, true);
114
        foreach ($aShopIds as $sStoreCode => $oStore) {
115
            $sValue = $this->getConfigParam($sKey, $sGroup, $sSection, $sStoreCode);
116
            if (array_search($sValue, $aValues) === false) {
117
                $aValues[] = $sValue;
118
            }
119
        }
120
        return $aValues;
121
    }
122
123
    /**
124
     * Get parameter from the request
125
     *
126
     * @param  string $sParameter
127
     * @return mixed
128
     */
129
    public function getRequestParameter($sParameter)
130
    {
131
        return $this->_getRequest()->getParam($sParameter);
132
    }
133
134
    /**
135
     * Checks if the given value is json encoded
136
     *
137
     * @param  $sValue
138
     * @return bool
139
     */
140
    protected function isJson($sValue)
141
    {
142
        if (is_string($sValue) && is_array(json_decode($sValue, true)) && (json_last_error() == JSON_ERROR_NONE)) {
143
            return true;
144
        }
145
        return false;
146
    }
147
}
148