diff options
author | Tristan Darricau <github@nicofuma.fr> | 2014-08-08 18:02:03 +0200 |
---|---|---|
committer | Tristan Darricau <github@nicofuma.fr> | 2014-08-11 01:15:49 +0200 |
commit | 160ff7b912243dc14d871b820213ddcd20dd06f4 (patch) | |
tree | d6d2f0e7fa38cc5944c7a0fa438c1deea2adc1c6 /phpBB/phpbb/captcha/factory.php | |
parent | e0d377bca70cff7846ba920a03b717aac1d208a4 (diff) | |
download | forums-160ff7b912243dc14d871b820213ddcd20dd06f4.tar forums-160ff7b912243dc14d871b820213ddcd20dd06f4.tar.gz forums-160ff7b912243dc14d871b820213ddcd20dd06f4.tar.bz2 forums-160ff7b912243dc14d871b820213ddcd20dd06f4.tar.xz forums-160ff7b912243dc14d871b820213ddcd20dd06f4.zip |
[ticket/11854] Move captcha stuff to phpbb/ and use DI for plugins
PHPBB3-11854
Diffstat (limited to 'phpBB/phpbb/captcha/factory.php')
-rw-r--r-- | phpBB/phpbb/captcha/factory.php | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/phpBB/phpbb/captcha/factory.php b/phpBB/phpbb/captcha/factory.php new file mode 100644 index 0000000000..6164b12e85 --- /dev/null +++ b/phpBB/phpbb/captcha/factory.php @@ -0,0 +1,83 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +namespace phpbb\captcha; + +/** +* A small class for 3.0.x (no autoloader in 3.0.x) +*/ +class factory +{ + /** + * @var \Symfony\Component\DependencyInjection\ContainerInterface + */ + private $container; + + /** + * @var \phpbb\di\service_collection + */ + private $plugins; + + /** + * Constructor + * + * @param \Symfony\Component\DependencyInjection\ContainerInterface $container + * @param \phpbb\di\service_collection $plugins + */ + public function __construct(\Symfony\Component\DependencyInjection\ContainerInterface $container,\phpbb\di\service_collection $plugins) + { + $this->container = $container; + $this->plugins = $plugins; + } + + //static public function get_instance($name) + + public function get_instance($name) + { + return $this->container->get($name); + } + + /** + * Call the garbage collector + */ + function garbage_collect($name) + { + $captcha = $this->get_instance($name); + $captcha->garbage_collect(0); + } + + /** + * return a list of all registered CAPTCHA plugins + */ + function get_captcha_types() + { + $captchas = array( + 'available' => array(), + 'unavailable' => array(), + ); + + foreach ($this->plugins as $plugin => $plugin_instance) + { + if ($plugin_instance->is_available()) + { + $captchas['available'][$plugin] = $plugin_instance->get_name(); + } + else + { + $captchas['unavailable'][$plugin] = $plugin_instance->get_name(); + } + } + + return $captchas; + } +} |