From 520a5f92953d350880355dbe46217d2b41edd2bd Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Wed, 31 Aug 2011 17:49:48 -0400 Subject: [feature/extension-manager] Refactoring the structure of extension provider PHPBB3-10323 --- phpBB/includes/extension/provider.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'phpBB/includes/extension/provider.php') 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); } } -- cgit v1.2.1