PluginProbe ʕ •ᴥ•ʔ
FAPI Member / 2.2.28
FAPI Member v2.2.28
2.2.33 2.2.32 trunk 1.9.47 2.1.18 2.2.24 2.2.25 2.2.26 2.2.28 2.2.29 2.2.30 2.2.31
fapi-member / src / Model / MemberSection.php
fapi-member / src / Model Last commit date
Enums 7 months ago ApiConnection.php 7 months ago MemberLevel.php 7 months ago MemberSection.php 7 months ago Membership.php 7 months ago MembershipChange.php 7 months ago Page.php 7 months ago Settings.php 7 months ago User.php 7 months ago
MemberSection.php
59 lines
1 <?php declare(strict_types=1);
2
3 namespace FapiMember\Model;
4
5 use FapiMember\Library\SmartEmailing\Types\Arrays;
6
7 final class MemberSection extends MemberLevel
8 {
9 /**@var array<MemberLevel>*/
10 private array $levels;
11
12 public function __construct($data)
13 {
14 parent::__construct($data);
15
16 $this->setLevelsFromData(Arrays::extractOrNull($data, 'levels') ?? []);
17 }
18
19 /**@return array<MemberLevel>*/
20 public function getLevels(): array
21 {
22 return $this->levels;
23 }
24
25 /**@param array<mixed>*/
26 private function setLevelsFromData(array $levelsData): void
27 {
28 $levels = [];
29
30 foreach ($levelsData as $levelData) {
31 $levels[] = new MemberLevel($levelData);
32 }
33
34 $this->levels = $levels;
35 }
36
37 /**@param array<MemberLevel> $levels*/
38 public function setLevels(array $levels): void
39 {
40 $this->levels = $levels;
41 }
42
43 public function toArray(): array
44 {
45 $levels = [];
46
47 foreach ($this->levels as $level) {
48 $levels[] = $level->toArray();
49 }
50
51 return [
52 'id' => $this->id,
53 'name' => $this->name,
54 'levels' => $levels,
55 ];
56 }
57
58 }
59