aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/cron/manager.php
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2011-08-21 02:57:01 -0400
committerNils Adermann <naderman@naderman.de>2011-09-29 15:42:46 +0200
commit5d5030a48be3d65df85d78e26690085c0889c6e3 (patch)
treea4b0f3dd7f551a5e37503698ee2ac0e52c177300 /phpBB/includes/cron/manager.php
parent96209e022477d97b581b79cabace4caddd19501b (diff)
downloadforums-5d5030a48be3d65df85d78e26690085c0889c6e3.tar
forums-5d5030a48be3d65df85d78e26690085c0889c6e3.tar.gz
forums-5d5030a48be3d65df85d78e26690085c0889c6e3.tar.bz2
forums-5d5030a48be3d65df85d78e26690085c0889c6e3.tar.xz
forums-5d5030a48be3d65df85d78e26690085c0889c6e3.zip
[feature/extension-manager] Remove cron's dependency on the extension manager.
Instead a separate cron provider supplies the manager with tasks from the extension finder. PHPBB3-10323
Diffstat (limited to 'phpBB/includes/cron/manager.php')
-rw-r--r--phpBB/includes/cron/manager.php48
1 files changed, 4 insertions, 44 deletions
diff --git a/phpBB/includes/cron/manager.php b/phpBB/includes/cron/manager.php
index ae48e233e0..a0bf018b33 100644
--- a/phpBB/includes/cron/manager.php
+++ b/phpBB/includes/cron/manager.php
@@ -33,64 +33,24 @@ class phpbb_cron_manager
protected $tasks = array();
/**
- * An extension manager to search for cron tasks in extensions.
- * @var phpbb_extension_manager
- */
- protected $extension_manager;
-
- /**
* Constructor. Loads all available tasks.
*
- * Tasks will be looked up in the core task directory located in
- * includes/cron/task/core/ and in extensions. Task classes will be
- * autoloaded and must be named according to autoloading naming conventions.
- *
- * Tasks in extensions must be located in a directory called cron or a subdir
- * of a directory called cron. The class and filename must end in a _task
- * suffix.
- *
- * @param phpbb_extension_manager $extension_manager phpBB extension manager
+ * @param array|Traversable $task_names Provides an iterable set of task names
*/
- public function __construct(phpbb_extension_manager $extension_manager)
+ public function __construct($task_names)
{
- $this->extension_manager = $extension_manager;
-
- $task_names = $this->find_cron_task_names();
$this->load_tasks($task_names);
}
/**
- * Finds cron task names using the extension manager.
- *
- * All PHP files in includes/cron/task/core/ are considered tasks. Tasks
- * in extensions have to be located in a directory called cron or a subdir
- * of a directory called cron. The class and filename must end in a _task
- * suffix.
- *
- * @return array List of task names
- */
- public function find_cron_task_names()
- {
- $finder = $this->extension_manager->get_finder();
-
- return $finder
- ->suffix('_task')
- ->directory('/cron')
- ->default_path('includes/cron/task/core/')
- ->default_suffix('')
- ->default_directory('')
- ->get_classes();
- }
-
- /**
* Loads tasks given by name, wraps them
* and puts them into $this->tasks.
*
- * @param array $task_names Array of strings
+ * @param array|Traversable $task_names Array of strings
*
* @return void
*/
- public function load_tasks(array $task_names)
+ public function load_tasks($task_names)
{
foreach ($task_names as $task_name)
{