aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Lange <code@nerdmind.de>2017-10-21 23:54:41 +0200
committerThomas Lange <code@nerdmind.de>2017-10-21 23:54:41 +0200
commitbcf23c3ab443567991d602f6d06d87051aa3468b (patch)
tree4d566c8b8b2c7c7180900b4a60929eed27780cdb
parent80420baa5b6c42f016c041bc13264382cc50d698 (diff)
downloadbigpipe-bcf23c3ab443567991d602f6d06d87051aa3468b.tar.gz
bigpipe-bcf23c3ab443567991d602f6d06d87051aa3468b.tar.xz
bigpipe-bcf23c3ab443567991d602f6d06d87051aa3468b.zip
Code optimization: The method "getStructure" has been added to the abstract Item class.
-rwxr-xr-xinclude/classes/BigPipe/BigPipe.php22
-rw-r--r--include/classes/BigPipe/Item.php5
-rwxr-xr-xinclude/classes/BigPipe/Pagelet.php24
-rwxr-xr-xinclude/classes/BigPipe/Resource.php7
4 files changed, 37 insertions, 21 deletions
diff --git a/include/classes/BigPipe/BigPipe.php b/include/classes/BigPipe/BigPipe.php
index 2989a75..ab8c8f7 100755
--- a/include/classes/BigPipe/BigPipe.php
+++ b/include/classes/BigPipe/BigPipe.php
@@ -64,27 +64,7 @@ class BigPipe {
usleep(rand(125, 175) * 2000);
}
- $stylesheets = [];
- $javascripts = [];
-
- foreach($Pagelet->getResources()[Resource::TYPE_STYLESHEET] as $Resource) {
- $stylesheets[] = ['ID' => $Resource->getID(), 'HREF' => $Resource->getURL(), 'PHASE' => $Resource->getPhaseDoneJS()];
- }
-
- foreach($Pagelet->getResources()[Resource::TYPE_JAVASCRIPT] as $Resource) {
- $javascripts[] = ['ID' => $Resource->getID(), 'HREF' => $Resource->getURL(), 'PHASE' => $Resource->getPhaseDoneJS()];
- }
-
- $pageletJSON = [
- 'ID' => $Pagelet->getID(),
- 'NEED' => $Pagelet->getDependencies(),
- 'RSRC' => [
- Resource::TYPE_STYLESHEET => $stylesheets,
- Resource::TYPE_JAVASCRIPT => $javascripts,
- ],
- 'CODE' => removeLineBreaksAndTabs($Pagelet->getJSCode()),
- 'PHASE' => $Pagelet->getPhaseDoneJS()
- ];
+ $pageletJSON = $Pagelet->getStructure();
if($last) {
$pageletJSON['IS_LAST'] = TRUE;
diff --git a/include/classes/BigPipe/Item.php b/include/classes/BigPipe/Item.php
index 5edf9c8..9c66eb9 100644
--- a/include/classes/BigPipe/Item.php
+++ b/include/classes/BigPipe/Item.php
@@ -15,6 +15,11 @@ abstract class Item {
protected $phaseDoneJS = [];
#===============================================================================
+ # Required methods in child classes
+ #===============================================================================
+ abstract public function getStructure(): array;
+
+ #===============================================================================
# Return the unique ID
#===============================================================================
public function getID() {
diff --git a/include/classes/BigPipe/Pagelet.php b/include/classes/BigPipe/Pagelet.php
index 664883a..ae465ab 100755
--- a/include/classes/BigPipe/Pagelet.php
+++ b/include/classes/BigPipe/Pagelet.php
@@ -124,6 +124,30 @@ class Pagelet extends Item {
}
#===============================================================================
+ # Return the pagelet structure
+ #===============================================================================
+ public function getStructure(): array {
+ foreach($this->getResources()[Resource::TYPE_STYLESHEET] as $Resource) {
+ $stylesheets[] = $Resource->getStructure();
+ }
+
+ foreach($this->getResources()[Resource::TYPE_JAVASCRIPT] as $Resource) {
+ $javascripts[] = $Resource->getStructure();
+ }
+
+ return [
+ 'ID' => $this->getID(),
+ 'NEED' => $this->getDependencies(),
+ 'RSRC' => [
+ Resource::TYPE_STYLESHEET => $stylesheets ?? [],
+ Resource::TYPE_JAVASCRIPT => $javascripts ?? []
+ ],
+ 'CODE' => removeLineBreaksAndTabs($this->getJSCode()),
+ 'PHASE' => $this->getPhaseDoneJS()
+ ];
+ }
+
+ #===============================================================================
# Magic method: __toString()
#===============================================================================
public function __toString() {
diff --git a/include/classes/BigPipe/Resource.php b/include/classes/BigPipe/Resource.php
index 438b83c..4711d48 100755
--- a/include/classes/BigPipe/Resource.php
+++ b/include/classes/BigPipe/Resource.php
@@ -55,5 +55,12 @@ abstract class Resource extends Item {
public function getURL() {
return $this->resourceURL;
}
+
+ #===============================================================================
+ # Return the resource structure
+ #===============================================================================
+ public function getStructure(): array {
+ return ['ID' => $this->getID(), 'HREF' => $this->getURL(), 'PHASE' => $this->getPhaseDoneJS()];
+ }
}
?> \ No newline at end of file