mirror of
https://github.com/phpbb/phpbb.git
synced 2025-04-20 07:42:09 +02:00
[feature/request-class] Refactor request classes to use autoloading
All class names have been adjusted to use a phpbb_request prefix, allowing them to be autoloaded. Also introduces some improvements to autoloading in general. PHPBB3-9716
This commit is contained in:
parent
b3558b5078
commit
456de63912
@ -195,11 +195,6 @@ require($phpbb_root_path . 'includes/template.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/session.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/auth.' . $phpEx);
|
||||
|
||||
require($phpbb_root_path . 'includes/request/type_cast_helper_interface.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/request/type_cast_helper.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/request/deactivated_super_global.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/request/request_interface.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/request/request.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/functions.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/functions_content.' . $phpEx);
|
||||
|
||||
@ -210,12 +205,18 @@ require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
|
||||
// Set PHP error handler to ours
|
||||
set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
|
||||
|
||||
// Cache must be loaded before class loader
|
||||
$cache = new cache();
|
||||
|
||||
// Setup class loader first
|
||||
$class_loader = new phpbb_class_loader($phpbb_root_path, '.' . $phpEx, $cache);
|
||||
$class_loader->register();
|
||||
|
||||
// Instantiate some basic classes
|
||||
$request = new phpbb_request(new phpbb_type_cast_helper());
|
||||
$request = new phpbb_request();
|
||||
$user = new user();
|
||||
$auth = new auth();
|
||||
$template = new template();
|
||||
$cache = new cache();
|
||||
$db = new $sql_db();
|
||||
|
||||
$class_loader = new phpbb_class_loader($phpbb_root_path, '.' . $phpEx, $cache);
|
||||
|
@ -21,7 +21,7 @@ if (!defined('IN_PHPBB'))
|
||||
function set_var(&$result, $var, $type, $multibyte = false)
|
||||
{
|
||||
// no need for dependency injection here, if you have the object, call the method yourself!
|
||||
$type_cast_helper = new phpbb_type_cast_helper();
|
||||
$type_cast_helper = new phpbb_request_type_cast_helper();
|
||||
$type_cast_helper->set_var($result, $var, $type, $multibyte);
|
||||
}
|
||||
|
||||
@ -70,7 +70,7 @@ function request_var($var_name, $default, $multibyte = false, $cookie = false, p
|
||||
{
|
||||
// false param: enable super globals, so the created request class does not
|
||||
// make super globals inaccessible everywhere outside this function.
|
||||
$tmp_request = new phpbb_request(new phpbb_type_cast_helper(), false);
|
||||
$tmp_request = new phpbb_request(new phpbb_request_type_cast_helper(), false);
|
||||
}
|
||||
|
||||
return $tmp_request->variable($var_name, $default, $multibyte, ($cookie) ? phpbb_request_interface::COOKIE : phpbb_request_interface::REQUEST);
|
||||
|
@ -21,7 +21,7 @@ if (!defined('IN_PHPBB'))
|
||||
*
|
||||
* @package phpbb_request
|
||||
*/
|
||||
class phpbb_deactivated_super_global implements ArrayAccess, Countable, IteratorAggregate
|
||||
class phpbb_request_deactivated_super_global implements ArrayAccess, Countable, IteratorAggregate
|
||||
{
|
||||
/**
|
||||
* @var string Holds the name of the superglobal this is replacing.
|
||||
|
@ -51,15 +51,15 @@ class phpbb_request implements phpbb_request_interface
|
||||
protected $input;
|
||||
|
||||
/**
|
||||
* @var phpbb_type_cast_helper_interface An instance of a type cast helper providing convenience methods for type conversions.
|
||||
* @var phpbb_request_type_cast_helper_interface An instance of a type cast helper providing convenience methods for type conversions.
|
||||
*/
|
||||
protected $type_cast_helper;
|
||||
|
||||
/**
|
||||
* Initialises the request class, that means it stores all input data in {@link $input input}
|
||||
* and then calls {@link phpbb_deactivated_super_global phpbb_deactivated_super_global}
|
||||
* and then calls {@link phpbb_request_deactivated_super_global phpbb_request_deactivated_super_global}
|
||||
*/
|
||||
public function __construct(phpbb_type_cast_helper_interface $type_cast_helper = null, $disable_super_globals = true)
|
||||
public function __construct(phpbb_request_type_cast_helper_interface $type_cast_helper = null, $disable_super_globals = true)
|
||||
{
|
||||
if ($type_cast_helper)
|
||||
{
|
||||
@ -67,7 +67,7 @@ class phpbb_request implements phpbb_request_interface
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->type_cast_helper = new phpbb_type_cast_helper();
|
||||
$this->type_cast_helper = new phpbb_request_type_cast_helper();
|
||||
}
|
||||
|
||||
foreach ($this->super_globals as $const => $super_global)
|
||||
@ -97,7 +97,7 @@ class phpbb_request implements phpbb_request_interface
|
||||
|
||||
/**
|
||||
* Disables access of super globals specified in $super_globals.
|
||||
* This is achieved by overwriting the super globals with instances of {@link phpbb_deactivated_super_global phpbb_deactivated_super_global}
|
||||
* This is achieved by overwriting the super globals with instances of {@link phpbb_request_deactivated_super_global phpbb_request_deactivated_super_global}
|
||||
*/
|
||||
public function disable_super_globals()
|
||||
{
|
||||
@ -106,7 +106,7 @@ class phpbb_request implements phpbb_request_interface
|
||||
foreach ($this->super_globals as $const => $super_global)
|
||||
{
|
||||
unset($GLOBALS[$super_global]);
|
||||
$GLOBALS[$super_global] = new phpbb_deactivated_super_global($this, $super_global, $const);
|
||||
$GLOBALS[$super_global] = new phpbb_request_deactivated_super_global($this, $super_global, $const);
|
||||
}
|
||||
|
||||
$this->super_globals_disabled = true;
|
||||
|
@ -20,7 +20,7 @@ if (!defined('IN_PHPBB'))
|
||||
*
|
||||
* @package phpbb_request
|
||||
*/
|
||||
class phpbb_type_cast_helper implements phpbb_type_cast_helper_interface
|
||||
class phpbb_request_type_cast_helper implements phpbb_request_type_cast_helper_interface
|
||||
{
|
||||
|
||||
/**
|
||||
|
@ -20,7 +20,7 @@ if (!defined('IN_PHPBB'))
|
||||
*
|
||||
* @package phpbb_request
|
||||
*/
|
||||
interface phpbb_type_cast_helper_interface
|
||||
interface phpbb_request_type_cast_helper_interface
|
||||
{
|
||||
/**
|
||||
* Recursively applies addslashes to a variable.
|
||||
|
@ -66,11 +66,6 @@ require($phpbb_root_path . 'includes/template.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/session.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/auth.' . $phpEx);
|
||||
|
||||
require($phpbb_root_path . 'includes/request/type_cast_helper_interface.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/request/type_cast_helper.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/request/deactivated_super_global.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/request/request_interface.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/request/request.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/functions.' . $phpEx);
|
||||
|
||||
if (file_exists($phpbb_root_path . 'includes/functions_content.' . $phpEx))
|
||||
@ -97,9 +92,13 @@ else
|
||||
define('STRIP', (get_magic_quotes_gpc()) ? true : false);
|
||||
}
|
||||
|
||||
$request = new phpbb_request(new phpbb_type_cast_helper());
|
||||
$user = new user();
|
||||
$cache = new cache();
|
||||
|
||||
$class_loader = new phpbb_class_loader($phpbb_root_path, '.' . $phpEx, $cache);
|
||||
$class_loader->register();
|
||||
|
||||
$request = new phpbb_request();
|
||||
$user = new user();
|
||||
$db = new $sql_db();
|
||||
|
||||
// make sure request_var uses this request instance
|
||||
|
@ -172,7 +172,7 @@ require($phpbb_root_path . 'includes/functions_install.' . $phpEx);
|
||||
$class_loader = new phpbb_class_loader($phpbb_root_path, '.' . $phpEx);
|
||||
$class_loader->register();
|
||||
|
||||
$request = new phpbb_request(new phpbb_type_cast_helper());
|
||||
$request = new phpbb_request();
|
||||
|
||||
// make sure request_var uses this request instance
|
||||
request_var('', 0, false, false, $request); // "dependency injection" for a function
|
||||
|
@ -55,15 +55,20 @@ $id = (isset($_GET['id'])) ? intval($_GET['id']) : 0;
|
||||
if ($id)
|
||||
{
|
||||
// Include files
|
||||
require($phpbb_root_path . 'includes/class_loader.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/acm/acm_' . $acm_type . '.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/cache.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/db/' . $dbms . '.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/constants.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/functions.' . $phpEx);
|
||||
|
||||
$db = new $sql_db();
|
||||
$cache = new cache();
|
||||
|
||||
$class_loader = new phpbb_class_loader($phpbb_root_path, '.' . $phpEx, $cache);
|
||||
$class_loader->register();
|
||||
|
||||
$db = new $sql_db();
|
||||
|
||||
// Connect to DB
|
||||
if (!@$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, false))
|
||||
{
|
||||
|
@ -9,6 +9,7 @@
|
||||
*/
|
||||
|
||||
require_once 'test_framework/framework.php';
|
||||
require_once '../phpBB/includes/request/interface.php';
|
||||
require_once '../phpBB/includes/request/deactivated_super_global.php';
|
||||
|
||||
class phpbb_deactivated_super_global_test extends phpbb_test_case
|
||||
@ -19,7 +20,7 @@ class phpbb_deactivated_super_global_test extends phpbb_test_case
|
||||
public function test_write_triggers_error()
|
||||
{
|
||||
$this->setExpectedTriggerError(E_USER_ERROR);
|
||||
$obj = new phpbb_deactivated_super_global($this->getMock('phpbb_request_interface'), 'obj', phpbb_request_interface::POST);
|
||||
$obj = new phpbb_request_deactivated_super_global($this->getMock('phpbb_request_interface'), 'obj', phpbb_request_interface::POST);
|
||||
$obj->offsetSet(0, 0);
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
require_once 'test_framework/framework.php';
|
||||
require_once '../phpBB/includes/request/type_cast_helper_interface.php';
|
||||
require_once '../phpBB/includes/request/request_interface.php';
|
||||
require_once '../phpBB/includes/request/interface.php';
|
||||
require_once '../phpBB/includes/request/deactivated_super_global.php';
|
||||
require_once '../phpBB/includes/request/request.php';
|
||||
|
||||
@ -28,7 +28,7 @@ class phpbb_request_test extends phpbb_test_case
|
||||
$_REQUEST['test'] = 3;
|
||||
$_GET['unset'] = '';
|
||||
|
||||
$this->type_cast_helper = $this->getMock('phpbb_type_cast_helper_interface');
|
||||
$this->type_cast_helper = $this->getMock('phpbb_request_type_cast_helper_interface');
|
||||
|
||||
$this->request = new phpbb_request($this->type_cast_helper);
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ require_once 'test_framework/framework.php';
|
||||
require_once '../phpBB/includes/request/type_cast_helper_interface.php';
|
||||
require_once '../phpBB/includes/request/type_cast_helper.php';
|
||||
require_once '../phpBB/includes/request/deactivated_super_global.php';
|
||||
require_once '../phpBB/includes/request/request_interface.php';
|
||||
require_once '../phpBB/includes/request/interface.php';
|
||||
require_once '../phpBB/includes/request/request.php';
|
||||
require_once '../phpBB/includes/functions.php';
|
||||
|
||||
|
@ -18,7 +18,7 @@ class phpbb_type_cast_helper_test extends phpbb_test_case
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
$this->type_cast_helper = new phpbb_type_cast_helper();
|
||||
$this->type_cast_helper = new phpbb_request_type_cast_helper();
|
||||
}
|
||||
|
||||
public function test_addslashes_recursively()
|
||||
|
Loading…
x
Reference in New Issue
Block a user