Completed
Push — v2 ( 58ecad...2e5c25 )
by Guillaume
06:46
created

ChangeSet   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 0
dl 0
loc 50
c 0
b 0
f 0
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setChangeSet() 0 15 3
A addFieldToChangeSet() 0 4 1
A getChangeSet() 0 4 1
1
<?php
2
3
namespace ETNA\Doctrine\Extensions;
4
5
/**
6
 * Ce trait permet de maintenir le change set pour une entité
7
 */
8
trait ChangeSet
9
{
10
    public $change_set = [];
11
12
    /**
13
     * Set the value of change_set
14
     *
15
     * @param array   $change_set   the change set
16
     *
17
     * @return self
18
     */
19
    public function setChangeSet(array $change_set)
20
    {
21
        // On ajoute les tags changés au change_set s'ils avaient été ajouté
22
        if (false === empty($this->getChangeSet()["added_tags"])) {
23
            $change_set["added_tags"] = $this->getChangeSet()["added_tags"];
24
        }
25
26
        if (false === empty($this->getChangeSet()["deleted_tags"])) {
27
            $change_set["deleted_tags"] = $this->getChangeSet()["deleted_tags"];
28
        }
29
30
        $this->change_set = $change_set;
31
32
        return $this;
33
    }
34
35
    /**
36
     * Ajoute un champ au change_set de l'entité si elle possède cette propriété
37
     *
38
     * @param string         $field_name   le nom du champ
39
     * @param array          $data         les données changées
40
     *
41
     * @return null
42
     */
43
    public function addFieldToChangeSet($field_name, array $data)
44
    {
45
        $this->change_set[$field_name] = $data;
46
    }
47
48
    /**
49
     * Get the value of change_set
50
     *
51
     * @return array|null
52
     */
53
    public function getChangeSet()
54
    {
55
        return $this->change_set;
56
    }
57
}
58