blob: 126cd5c6011208904d3d2e771ebcdaa344be250b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<?php
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#
# Abstract item class [Thomas Lange <code@nerdmind.de>] #
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#
# #
# The item class abstracts the properties and methods that are required by the #
# Pagelet and Resource class both. Each one can have PhaseDoneJS callbacks for #
# several phases numbers which are defined as constants of the specific class. #
# #
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#
namespace BigPipe;
abstract class Item {
protected $ID = '';
protected $phaseDoneJS = [];
#===============================================================================
# Required methods in child classes
#===============================================================================
abstract public function getStructure(): array;
#===============================================================================
# Return the unique ID
#===============================================================================
public function getID(): string {
return $this->ID;
}
#===============================================================================
# Return all registered PhaseDoneJS callbacks
#===============================================================================
public function getPhaseDoneJS(): array {
return $this->phaseDoneJS;
}
#===============================================================================
# Attach a PhaseDoneJS callback
#===============================================================================
public function addPhaseDoneJS(int $phase, string $code): void {
$this->phaseDoneJS[$phase][] = $code;
}
}
|