1
0
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:
Igor Wiedler 2010-08-31 21:26:50 +02:00 committed by Nils Adermann
parent b3558b5078
commit 456de63912
14 changed files with 38 additions and 32 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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.

View File

@ -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;

View File

@ -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
{
/**

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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))
{

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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';

View File

@ -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()