Completed
Push — master ( b17f69...c5cbbf )
by P.R.
02:06
created

RenderWalker::getSubModuleClass()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 2
b 0
f 0
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
declare(strict_types=1);
3
4
namespace Plaisio\Helper;
5
6
/**
7
 * Class for generating CSS class names when walking your representation of your HTMl elements.
8
 */
9
class RenderWalker
10
{
11
  //--------------------------------------------------------------------------------------------------------------------
12
  /**
13
   * The CSS module class.
14
   *
15
   * @var string
16
   */
17
  private string $moduleClass;
18
19
  /**
20
   * The CSS sub-module class.
21
   *
22
   * @var string|null
23
   */
24
  private ?string $subModuleClass;
25
26
  //--------------------------------------------------------------------------------------------------------------------
27
  /**
28
   * Object constructor.
29
   *
30
   * @param string      $moduleClass    The CSS module class.
31
   * @param string|null $subModuleClass The CSS sub-module class.
32
   */
33 3
  public function __construct(string $moduleClass, ?string $subModuleClass = null)
34
  {
35 3
    $this->moduleClass    = $moduleClass;
36 3
    $this->subModuleClass = $subModuleClass;
37 3
  }
38
39
  //--------------------------------------------------------------------------------------------------------------------
40
  /**
41
   * Returns the module, sub-module and sub-classes for an HTML element.
42
   *
43
   * @param string|null $subClass The CSS sub-class with the CSS module class.
44
   *
45
   * @return string[]
46
   */
47 2
  public function getClasses(?string $subClass = null): array
48
  {
49 2
    $classes = [$this->moduleClass];
50 2
    if ($this->subModuleClass!==null)
51
    {
52 1
      $classes[] = $this->subModuleClass;
53
    }
54 2
    if ($subClass!==null)
55
    {
56 2
      $classes[] = $this->moduleClass.'-'.$subClass;
57
    }
58
59 2
    return $classes;
60
  }
61
62
  //--------------------------------------------------------------------------------------------------------------------
63
  /**
64
   * Returns the CSS module class.
65
   *
66
   * @return string
67
   */
68 1
  public function getModuleClass(): string
69
  {
70 1
    return $this->moduleClass;
71
  }
72
73
  //--------------------------------------------------------------------------------------------------------------------
74
  /**
75
   * Returns the CSS sub-module class.
76
   *
77
   * @return string|null
78
   */
79 1
  public function getSubModuleClass(): ?string
80
  {
81 1
    return $this->subModuleClass;
82
  }
83
84
  //--------------------------------------------------------------------------------------------------------------------
85
  /**
86
   * Sets CSS module class.
87
   *
88
   * @param string $moduleClass The CSS module class.
89
   *
90
   * @return $this
91
   */
92 1
  public function setModuleClass(string $moduleClass): self
93
  {
94 1
    $this->moduleClass = $moduleClass;
95
96 1
    return $this;
97
  }
98
99
  //--------------------------------------------------------------------------------------------------------------------
100
  /**
101
   * Sets CSS sub-module class.
102
   *
103
   * @param string|null $subModuleClass The CSS sub-module class.
104
   *
105
   * @return RenderWalker
106
   */
107 1
  public function setSubModuleClass(?string $subModuleClass): RenderWalker
108
  {
109 1
    $this->subModuleClass = $subModuleClass;
110
111 1
    return $this;
112
  }
113
114
  //--------------------------------------------------------------------------------------------------------------------
115
}
116
117
//----------------------------------------------------------------------------------------------------------------------
118