aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/extension
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2011-08-31 17:49:48 -0400
committerNils Adermann <naderman@naderman.de>2011-09-29 16:15:53 +0200
commit520a5f92953d350880355dbe46217d2b41edd2bd (patch)
treed0658eaf062ea332dd9be2a94ef5cb010fb35fd7 /phpBB/includes/extension
parent52f5fa796f473e11a101b4da91e455bdc4839daf (diff)
downloadforums-520a5f92953d350880355dbe46217d2b41edd2bd.tar
forums-520a5f92953d350880355dbe46217d2b41edd2bd.tar.gz
forums-520a5f92953d350880355dbe46217d2b41edd2bd.tar.bz2
forums-520a5f92953d350880355dbe46217d2b41edd2bd.tar.xz
forums-520a5f92953d350880355dbe46217d2b41edd2bd.zip
[feature/extension-manager] Refactoring the structure of extension provider
PHPBB3-10323
Diffstat (limited to 'phpBB/includes/extension')
-rw-r--r--phpBB/includes/extension/provider.php13
1 files changed, 8 insertions, 5 deletions
diff --git a/phpBB/includes/extension/provider.php b/phpBB/includes/extension/provider.php
index 9b5ec56d30..3939c2ef07 100644
--- a/phpBB/includes/extension/provider.php
+++ b/phpBB/includes/extension/provider.php
@@ -24,9 +24,9 @@ abstract class phpbb_extension_provider implements IteratorAggregate
{
/**
* Array holding all found items
- * @var array
+ * @var array|null
*/
- protected $items = array();
+ protected $items = null;
/**
* An extension manager to search for items in extensions
@@ -42,8 +42,6 @@ abstract class phpbb_extension_provider implements IteratorAggregate
public function __construct(phpbb_extension_manager $extension_manager)
{
$this->extension_manager = $extension_manager;
-
- $this->items = $this->find();
}
/**
@@ -51,7 +49,7 @@ abstract class phpbb_extension_provider implements IteratorAggregate
*
* @return array List of task names
*/
- abstract function find();
+ abstract protected function find();
/**
* Retrieve an iterator over all items
@@ -60,6 +58,11 @@ abstract class phpbb_extension_provider implements IteratorAggregate
*/
public function getIterator()
{
+ if ($this->items === null)
+ {
+ $this->items = $this->find();
+ }
+
return new ArrayIterator($this->items);
}
}