diff options
author | Thomas Lange <code@nerdmind.de> | 2017-10-21 23:54:41 +0200 |
---|---|---|
committer | Thomas Lange <code@nerdmind.de> | 2017-10-21 23:54:41 +0200 |
commit | bcf23c3ab443567991d602f6d06d87051aa3468b (patch) | |
tree | 4d566c8b8b2c7c7180900b4a60929eed27780cdb | |
parent | 80420baa5b6c42f016c041bc13264382cc50d698 (diff) | |
download | bigpipe-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-x | include/classes/BigPipe/BigPipe.php | 22 | ||||
-rw-r--r-- | include/classes/BigPipe/Item.php | 5 | ||||
-rwxr-xr-x | include/classes/BigPipe/Pagelet.php | 24 | ||||
-rwxr-xr-x | include/classes/BigPipe/Resource.php | 7 |
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 |