PluginProbe ʕ •ᴥ•ʔ
FAPI Member / 2.2.24
FAPI Member v2.2.24
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 11 months ago ApiConnection.php 11 months ago MemberLevel.php 11 months ago MemberSection.php 11 months ago Membership.php 11 months ago MembershipChange.php 11 months ago Page.php 11 months ago Settings.php 11 months ago User.php 11 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