aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/core/core.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/core/core.php')
-rw-r--r--phpBB/includes/core/core.php440
1 files changed, 0 insertions, 440 deletions
diff --git a/phpBB/includes/core/core.php b/phpBB/includes/core/core.php
deleted file mode 100644
index 2b2c4bea13..0000000000
--- a/phpBB/includes/core/core.php
+++ /dev/null
@@ -1,440 +0,0 @@
-<?php
-/**
-*
-* @package core
-* @version $Id$
-* @copyright (c) 2008 phpBB Group
-* @license http://opensource.org/licenses/gpl-license.php GNU Public License
-*
-*/
-
-/**
-* @ignore
-*/
-if (!defined('IN_PHPBB'))
-{
- exit();
-}
-
-/**
-* phpBB abstract class
-*
-* @package core
-* @author acydburn
-*/
-abstract class phpbb
-{
- /**
- * The phpBB template object
- */
- public static $template = NULL;
-
- /**
- * The phpBB user object
- */
- public static $user = NULL;
-
- /**
- * The phpBB database object
- */
- public static $db = NULL;
-
- /**
- * The phpBB cache system object
- */
- public static $acm = NULL;
-
- /**
- * The phpBB permission object
- */
- public static $acl = NULL;
-
- /**
- * The phpBB plugins object
- */
- public static $plugins = NULL;
-
- /**
- * The phpBB core url object
- * Responsible for handling URL-related tasks as well as redirects, etc.
- */
- public static $url = NULL;
-
- /**
- * The phpBB core security object.
- * Responsible for handling security-related tasks, for example password handling, random number generation...
- */
- public static $security = NULL;
-
- /**
- * The phpBB core system object
- * Responsible for handling file/server tasks.
- */
- public static $system = NULL;
-
- /**
- * The phpBB API object
- */
- public static $api = NULL;
-
- /**
- * @var array The phpBB configuration array
- */
- public static $config = array();
-
- /**
- * @var array The base configuration array
- */
- public static $base_config = array(
- 'table_prefix' => 'phpbb_',
- 'admin_folder' => 'adm',
- 'acm_type' => 'file',
-
- 'config_set' => false,
- 'extensions_set' => false,
-
- 'memory_usage' => 0,
-
- 'debug' => false,
- 'debug_extra' => false,
- 'installed' => false,
- );
-
- /**
- * @var array Last notice occurred in message handler
- */
- public static $last_notice = array(
- 'file' => '',
- 'line' => 0,
- 'message' => '',
- 'errno' => E_NOTICE,
- );
-
- /**#@+
- * Permission constant
- */
- const ACL_NEVER = 0;
- const ACL_YES = 1;
- const ACL_NO = -1;
- /**#@-*/
-
- /**#@+
- * Global constant for {@link phpbb::$system->chmod()}
- */
- const CHMOD_ALL = 7;
- const CHMOD_READ = 4;
- const CHMOD_WRITE = 2;
- const CHMOD_EXECUTE = 1;
- /**#@-*/
-
- /**#@+
- * Constant defining plugin mode for objects
- */
- const METHOD_ADD = 1;
- const METHOD_OVERRIDE = 2;
- const METHOD_INJECT = 4;
- /**#@-*/
-
- /**#@+
- * Constant defining plugin mode for functions
- */
- const FUNCTION_OVERRIDE = 1;
- const FUNCTION_INJECT = 2;
- /**#@-*/
-
- /**#@+
- * Constant to define user level. See {@link phpbb::$user phpbb::$user}
- */
- const USER_NORMAL = 0;
- const USER_INACTIVE = 1;
- const USER_IGNORE = 2;
- const USER_FOUNDER = 3;
- /**#@-*/
-
- /**
- * @var array a static array holding custom objects
- */
- public static $instances = NULL;
-
- /**
- * We do not want this class instantiable
- */
- private function ___construct() { }
-
- /**
- * A failover error handler to handle errors before we assign our own error handler
- *
- * @access public
- */
- public static function error_handler($errno, $errstr, $errfile, $errline)
- {
- throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
- }
-
- /**
- * Set base configuration - called from config.php file
- */
- public static function set_config($config)
- {
- phpbb::$base_config = array_merge(phpbb::$base_config, $config);
- phpbb::$base_config['config_set'] = true;
-
- if (phpbb::$base_config['debug_extra'] && function_exists('memory_get_usage'))
- {
- phpbb::$base_config['memory_usage'] = memory_get_usage();
- }
-
- // Load Extensions
- if (!empty(phpbb::$base_config['extensions']) && !phpbb::$base_config['extensions_set'])
- {
- $load_extensions = explode(',', phpbb::$base_config['extensions']);
-
- foreach ($load_extensions as $extension)
- {
- @dl(trim($extension));
- }
-
- phpbb::$base_config['extensions_set'] = true;
- }
- }
-
- /**
- * Get instance of static property
- *
- * @param string $variable The name of the instance to retrieve.
- *
- * @return mixed The property (object/array/...) registered with this name
- * @access public
- */
- public static function get_instance($variable)
- {
- if (!self::registered($variable))
- {
- return self::register($variable);
- }
-
- // Please do not try to change it to (expr) ? (true) : (false) - it will not work. ;)
- if (property_exists('phpbb', $variable))
- {
- return self::$$variable;
- }
- else
- {
- return self::$instances[$variable];
- }
- }
-
- /**
- * Check if the variable is already assigned
- *
- * @param string $variable The name of the instance to check
- *
- * @return bool True if the instance is registered, false if not.
- * @access public
- */
- public static function registered($variable)
- {
- if (property_exists('phpbb', $variable))
- {
- return (self::$$variable !== NULL) ? true : false;
- }
-
- return (isset(self::$instances[$variable]) && self::$instances[$variable] !== NULL) ? true : false;
- }
-
- /**
- * Simpler method to access assigned instances.
- * (Overloading is not possible here due to the object being static and our use of PHP 5.2.x+.)
- *
- * @param string $variable The instance name to retrieve
- *
- * @return mixed The instance
- * @access public
- */
- public static function get($variable)
- {
- // No error checking done here... returned right away
- return self::$instances[$variable];
- }
-
- /**
- * Register new class/object.
- * Any additional parameter will be forwarded to the class instantiation.
- *
- * @param string $variable The resulting instance name.
- * If a property with the given name exists, it will be assigned.
- * Else it will be put in the {@link $instances intances} array
- * @param string $class Define a custom class name.
- * This is useful if the class used does not abide to the rules (phpbb_{$class}).
- * @param string|array $includes Define additional files/includes required for this class to be correctly set up. Files are expected to be in /includes/.
- * @param mixed $arguments,... Any number of additional arguments passed to the constructor of the object to create
- *
- * @return mixed The instance of the created object
- * @access public
- */
- public static function register($variable, $class = false, $includes = false)
- {
- if (self::registered($variable))
- {
- return self::get_instance($variable);
- }
-
- $arguments = (func_num_args() > 3) ? array_slice(func_get_args(), 3) : array();
- $class = ($class === false) ? 'phpbb_' . $variable : $class;
-
- if ($includes !== false)
- {
- if (!is_array($includes))
- {
- $includes = array($includes);
- }
-
- foreach ($includes as $file)
- {
- require_once PHPBB_ROOT_PATH . 'includes/' . $file . '.' . PHP_EXT;
- }
- }
-
- $reflection = new ReflectionClass($class);
-
- if (!$reflection->isInstantiable())
- {
- throw new Exception('Assigned classes need to be instantiated.');
- }
-
- if (!property_exists('phpbb', $variable))
- {
- self::$instances[$variable] = (sizeof($arguments)) ? call_user_func_array(array($reflection, 'newInstance'), $arguments) : $reflection->newInstance();
- }
- else
- {
- self::$$variable = (sizeof($arguments)) ? call_user_func_array(array($reflection, 'newInstance'), $arguments) : $reflection->newInstance();
- }
-
- return self::get_instance($variable);
- }
-
- /**
- * Instead of registering we also can assign a variable. This is helpful if we have an application builder or use a factory.
- *
- * @param string $variable The resulting instance name.
- * If a property with the given name exists, it will be assigned.
- * Else it will be put in the {@link $instances intances} array
- * @param mixed $object The variable to assign to the instance
- *
- * @return mixed The instance
- * @access public
- */
- public static function assign($variable, $object)
- {
- if (self::registered($variable))
- {
- return self::get_instance($variable);
- }
-
- if (!property_exists('phpbb', $variable))
- {
- self::$instances[$variable] = $object;
- }
- else
- {
- self::$$variable = $object;
- }
-
- return self::get_instance($variable);
- }
-
- /**
- * Unset/unregister a specific object.
- *
- * @param string $variable The name of the instance to unset
- * @access public
- */
- public static function unregister($variable)
- {
- if (!self::registered($variable))
- {
- return;
- }
-
- if (!property_exists('phpbb', $variable))
- {
- unset(self::$instances[$variable]);
- }
- else
- {
- self::$$variable = NULL;
- }
- }
-
- /**
- * Function to return to a clean state, unregistering everything. This is helpful for unit tests if you want to return to a "clean state"
- *
- * @access public
- */
- public static function reset()
- {
- $class_vars = array_keys(get_class_vars('phpbb'));
- $class_vars = array_merge(array_keys(self::$instances), $class_vars);
-
- foreach ($class_vars as $variable)
- {
- self::unregister($variable);
- }
- }
-}
-
-/**
-* phpBB SPL Autoload Function. A phpbb_ prefix will be stripped from the class name.
-*
-* The files this function tries to include are:
-* includes/{$class_name}/bootstrap.php
-* includes/{$class_name}/index.php
-* Additionally, every _ within $class_name is replaced by / for the following directories:
-* includes/{$class_name}.php
-* includes/classes/{$class_name}.php
-*
-* @param string $class_name The class name. An existing phpbb_ prefix will be removed.
-*/
-function __phpbb_autoload($class_name)
-{
- if (strpos($class_name, 'phpbb_') === 0)
- {
- $class_name = substr($class_name, 6);
- }
-
- $class_name = basename($class_name);
-
- $filenames = array(
- 'includes/' . $class_name . '/bootstrap',
- 'includes/' . $class_name . '/index',
- 'includes/' . $class_name,
- 'includes/classes/' . $class_name,
- );
-
- if (strpos($class_name, '_') !== false)
- {
- $class_name = str_replace('_', '/', $class_name);
-
- $filenames = array_merge($filenames, array(
- 'includes/' . $class_name,
- 'includes/classes/' . $class_name,
- ));
- }
-
- foreach ($filenames as $filename)
- {
- if (file_exists(PHPBB_ROOT_PATH . $filename . '.' . PHP_EXT))
- {
- include PHPBB_ROOT_PATH . $filename . '.' . PHP_EXT;
- return;
- }
- }
-}
-
-/*
-class phpbb_exception extends Exception
-{
-}
-*/
-?> \ No newline at end of file