aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/extension/controller.php
diff options
context:
space:
mode:
authorDavid King <imkingdavid@gmail.com>2012-03-28 16:13:59 -0400
committerDavid King <imkingdavid@gmail.com>2012-03-28 16:13:59 -0400
commitcb7dabbffc7ea5e2acffaa6fed96ea682f93581d (patch)
treea37c2e87c9d26f8d78d4cea0df95544e30226e79 /phpBB/includes/extension/controller.php
parent7c3ebcc3ff16950f76f857381222070c36a76fc3 (diff)
downloadforums-cb7dabbffc7ea5e2acffaa6fed96ea682f93581d.tar
forums-cb7dabbffc7ea5e2acffaa6fed96ea682f93581d.tar.gz
forums-cb7dabbffc7ea5e2acffaa6fed96ea682f93581d.tar.bz2
forums-cb7dabbffc7ea5e2acffaa6fed96ea682f93581d.tar.xz
forums-cb7dabbffc7ea5e2acffaa6fed96ea682f93581d.zip
[ticket/10586] Change the interface to an abstract class
This allows the common phpBB objects to be automatically accessible to extensions without the author having to globalize and assign each one himself. This is better because it also gives purpose to the phpbb_extension_controller class; instead of just being the way to ensure a handle() method is present, it also does this work for us. PHPBB3-10586
Diffstat (limited to 'phpBB/includes/extension/controller.php')
-rw-r--r--phpBB/includes/extension/controller.php85
1 files changed, 85 insertions, 0 deletions
diff --git a/phpBB/includes/extension/controller.php b/phpBB/includes/extension/controller.php
new file mode 100644
index 0000000000..985aded862
--- /dev/null
+++ b/phpBB/includes/extension/controller.php
@@ -0,0 +1,85 @@
+<?php
+/**
+*
+* @package extension
+* @copyright (c) 2011 phpBB Group
+* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+*
+*/
+
+/**
+* @ignore
+*/
+if (!defined('IN_PHPBB'))
+{
+ exit;
+}
+
+/**
+* Abstract class extended by extension front controller classes
+*
+* @package extension
+*/
+abstract class phpbb_extension_controller
+{
+ /**
+ * @var phpbb_request Request class object
+ */
+ protected $request;
+
+ /**
+ * @var dbal DBAL class object
+ */
+ protected $db;
+
+ /**
+ * @var user User class object
+ */
+ protected $user;
+
+ /**
+ * @var phpbb_template Template class object
+ */
+ protected $template;
+
+ /**
+ * @var array Config array
+ */
+ protected $config;
+
+ /**
+ * @var string PHP Extension
+ */
+ protected $phpEx;
+
+ /**
+ * @var string Relative path to board root
+ */
+ protected $phpbb_root_path;
+
+ /**
+ * Constructor method that provides the common phpBB objects as inherited class
+ * properties for automatic availability in extension controllers
+ */
+ function __construct()
+ {
+ global $request, $db, $user, $template, $config;
+ global $phpEx, $phpbb_root_path;
+
+ $this->request =& $request;
+ $this->db =& $db;
+ $this->user =& $user;
+ $this->template =& $template;
+ $this->config =& $config;
+
+ $this->phpEx = $phpEx;
+ $this->phpbb_root_path = $phpbb_root_path;
+ }
+
+ /**
+ * Handle the request to display a page from an extension
+ *
+ * @return null
+ */
+ abstract public function handle();
+}