Completed
Pull Request — master (#5)
by Tim
03:08
created

ProductIntRepository::init()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 3

Duplication

Lines 9
Ratio 100 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 9
loc 9
ccs 0
cts 5
cp 0
rs 9.6666
cc 1
eloc 3
nc 1
nop 0
crap 2
1
<?php
2
3
/**
4
 * TechDivision\Import\Product\Ee\Repositories\ProductIntRepository
5
 *
6
 * NOTICE OF LICENSE
7
 *
8
 * This source file is subject to the Open Software License (OSL 3.0)
9
 * that is available through the world-wide-web at this URL:
10
 * http://opensource.org/licenses/osl-3.0.php
11
 *
12
 * PHP version 5
13
 *
14
 * @author    Tim Wagner <[email protected]>
15
 * @copyright 2016 TechDivision GmbH <[email protected]>
16
 * @license   http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
 * @link      https://github.com/techdivision/import-product-ee
18
 * @link      http://www.techdivision.com
19
 */
20
21
namespace TechDivision\Import\Product\Ee\Repositories;
22
23
use TechDivision\Import\Product\Ee\Utils\MemberNames;
24
use TechDivision\Import\Repositories\AbstractRepository;
25
26
/**
27
 * Repository implementation to load product integer attribute data.
28
 *
29
 * @author    Tim Wagner <[email protected]>
30
 * @copyright 2016 TechDivision GmbH <[email protected]>
31
 * @license   http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
32
 * @link      https://github.com/techdivision/import-product-ee
33
 * @link      http://www.techdivision.com
34
 */
35 View Code Duplication
class ProductIntRepository extends AbstractRepository
0 ignored issues
show
Duplication introduced by
This class seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
36
{
37
38
    /**
39
     * The prepared statement to load the existing product integer attribute.
40
     *
41
     * @var \PDOStatement
42
     */
43
    protected $productIntStmt;
44
45
    /**
46
     * Initializes the repository's prepared statements.
47
     *
48
     * @return void
49
     */
50
    public function init()
51
    {
52
53
        // load the utility class name
54
        $utilityClassName = $this->getUtilityClassName();
55
56
        // initialize the prepared statements
57
        $this->productIntStmt = $this->getConnection()->prepare($utilityClassName::PRODUCT_INT);
58
    }
59
60
    /**
0 ignored issues
show
Coding Style introduced by
Doc comment for parameter "$rowId" missing
Loading history...
61
     * Load's and return's the varchar attribute with the passed row/attribute/store ID.
62
     *
63
     * @param integer $row         The row ID of the attribute
0 ignored issues
show
Bug introduced by
There is no parameter named $row. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
Coding Style introduced by
Doc comment for parameter $row does not match actual variable name $rowId
Loading history...
64
     * @param integer $attributeId The attribute ID of the attribute
65
     * @param integer $storeId     The store ID of the attribute
66
     *
67
     * @return array|null The varchar attribute
68
     */
69
    public function findOneByRowIdAndAttributeIdAndStoreId($rowId, $attributeId, $storeId)
70
    {
71
72
        // prepare the params
73
        $params = array(
74
            MemberNames::ROW_ID        => $rowId,
75
            MemberNames::STORE_ID      => $storeId,
76
            MemberNames::ATTRIBUTE_ID  => $attributeId
77
        );
78
79
        // load and return the product integer attribute with the passed store/entity/attribute ID
80
        $this->productIntStmt->execute($params);
81
        return $this->productIntStmt->fetch(\PDO::FETCH_ASSOC);
82
    }
83
}
84