blob: d5ff21fd8757e1ff02cc5b435ec0b2dcf574601e (
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
<?php
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#
# Abstract Resource representation class [Thomas Lange <code@nerdmind.de>] #
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#
# #
# [More information coming soon] #
# #
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#
namespace BigPipe;
abstract class Resource extends Item {
private $type = '';
private $resourceURL = '';
#===============================================================================
# Render resource HTML for disabled pipeline
#===============================================================================
abstract public function renderHTML(): string;
#===============================================================================
# Resource types
#===============================================================================
const TYPE_STYLESHEET = 0;
const TYPE_JAVASCRIPT = 1;
#===============================================================================
# Phase numbers for PhaseDoneJS
#===============================================================================
const PHASE_INIT = 0; # Resource object has been initialized
const PHASE_LOAD = 1; # Loading of resource has been started
const PHASE_DONE = 2; # Loading of resource is done.
#===============================================================================
# Build resource
#===============================================================================
public function __construct(string $customID, int $type, string $resourceURL) {
$this->ID = $customID ?? spl_object_hash($this);
$this->type = $type;
$this->resourceURL = $resourceURL;
$this->phaseDoneJS = array_pad($this->phaseDoneJS, 3, []);
}
#===============================================================================
# Return the resource type
#===============================================================================
public function getType(): int {
return $this->type;
}
#===============================================================================
# Return the resource URL
#===============================================================================
public function getURL(): string {
return $this->resourceURL;
}
#===============================================================================
# Return the resource structure
#===============================================================================
public function getStructure(): array {
return [
'ID' => $this->getID(),
'HREF' => $this->getURL(),
'PHASE' => $this->getPhaseDoneJS()
];
}
}
|