diff options
Diffstat (limited to 'phpBB/phpbb/controller')
| -rw-r--r-- | phpBB/phpbb/controller/exception.php | 4 | ||||
| -rw-r--r-- | phpBB/phpbb/controller/helper.php | 40 | ||||
| -rw-r--r-- | phpBB/phpbb/controller/provider.php | 6 | ||||
| -rw-r--r-- | phpBB/phpbb/controller/resolver.php | 44 | 
4 files changed, 51 insertions, 43 deletions
| diff --git a/phpBB/phpbb/controller/exception.php b/phpBB/phpbb/controller/exception.php index faa8b6b584..e8694b8bcf 100644 --- a/phpBB/phpbb/controller/exception.php +++ b/phpBB/phpbb/controller/exception.php @@ -7,6 +7,8 @@  *  */ +namespace phpbb\controller; +  /**  * @ignore  */ @@ -19,6 +21,6 @@ if (!defined('IN_PHPBB'))  * Controller exception class  * @package phpBB3  */ -class phpbb_controller_exception extends RuntimeException +class exception extends \RuntimeException  {  } diff --git a/phpBB/phpbb/controller/helper.php b/phpBB/phpbb/controller/helper.php index 74410ddfd1..07483a91eb 100644 --- a/phpBB/phpbb/controller/helper.php +++ b/phpBB/phpbb/controller/helper.php @@ -7,6 +7,8 @@  *  */ +namespace phpbb\controller; +  /**  * @ignore  */ @@ -21,21 +23,27 @@ use Symfony\Component\HttpFoundation\Response;  * Controller helper class, contains methods that do things for controllers  * @package phpBB3  */ -class phpbb_controller_helper +class helper  {  	/**  	* Template object -	* @var phpbb_template +	* @var \phpbb\template\template  	*/  	protected $template;  	/**  	* User object -	* @var phpbb_user +	* @var \phpbb\user  	*/  	protected $user;  	/** +	* config object +	* @var \phpbb\config\config +	*/ +	protected $config; + +	/**  	* phpBB root path  	* @var string  	*/ @@ -50,15 +58,17 @@ class phpbb_controller_helper  	/**  	* Constructor  	* -	* @param phpbb_template $template Template object -	* @param phpbb_user $user User object +	* @param \phpbb\template\template $template Template object +    * @param \phpbb\user $user User object +    * @param \phpbb\config\config $config Config object  	* @param string $phpbb_root_path phpBB root path  	* @param string $php_ext PHP extension  	*/ -	public function __construct(phpbb_template $template, phpbb_user $user, $phpbb_root_path, $php_ext) +	public function __construct(\phpbb\template\template $template, \phpbb\user $user, \phpbb\config\config $config, $phpbb_root_path, $php_ext)  	{  		$this->template = $template;  		$this->user = $user; +		$this->config = $config;  		$this->phpbb_root_path = $phpbb_root_path;  		$this->php_ext = $php_ext;  	} @@ -102,22 +112,14 @@ class phpbb_controller_helper  			$route = substr($route, 0, $route_delim);  		} -		if (is_array($params) && !empty($params)) -		{ -			$params = array_merge(array( -				'controller' => $route, -			), $params); -		} -		else if (is_string($params) && $params) -		{ -			$params = 'controller=' . $route . (($is_amp) ? '&' : '&') . $params; -		} -		else +		// If enable_mod_rewrite is false, we need to include app.php +		$route_prefix = $this->phpbb_root_path; +		if (empty($this->config['enable_mod_rewrite']))  		{ -			$params = array('controller' => $route); +			$route_prefix .= 'app.' . $this->php_ext . '/';  		} -		return append_sid($this->phpbb_root_path . 'app.' . $this->php_ext . $route_params, $params, $is_amp, $session_id); +		return append_sid($route_prefix . "$route" . $route_params, $params, $is_amp, $session_id);  	}  	/** diff --git a/phpBB/phpbb/controller/provider.php b/phpBB/phpbb/controller/provider.php index b2a5b9f6b2..3aad08e3aa 100644 --- a/phpBB/phpbb/controller/provider.php +++ b/phpBB/phpbb/controller/provider.php @@ -7,6 +7,8 @@  *  */ +namespace phpbb\controller; +  /**  * @ignore  */ @@ -23,7 +25,7 @@ use Symfony\Component\Config\FileLocator;  * Controller interface  * @package phpBB3  */ -class phpbb_controller_provider +class provider  {  	/**  	* YAML file(s) containing route information @@ -48,7 +50,7 @@ class phpbb_controller_provider  	*  	* @return The current instance of this object for method chaining  	*/ -	public function import_paths_from_finder(phpbb_extension_finder $finder) +	public function import_paths_from_finder(\phpbb\extension\finder $finder)  	{  		// We hardcode the path to the core config directory  		// because the finder cannot find it diff --git a/phpBB/phpbb/controller/resolver.php b/phpBB/phpbb/controller/resolver.php index 95dfc8da8e..1cc8981105 100644 --- a/phpBB/phpbb/controller/resolver.php +++ b/phpBB/phpbb/controller/resolver.php @@ -7,6 +7,8 @@  *  */ +namespace phpbb\controller; +  /**  * @ignore  */ @@ -23,11 +25,11 @@ use Symfony\Component\HttpFoundation\Request;  * Controller manager class  * @package phpBB3  */ -class phpbb_controller_resolver implements ControllerResolverInterface +class resolver implements ControllerResolverInterface  {  	/**  	* User object -	* @var phpbb_user +	* @var \phpbb\user  	*/  	protected $user; @@ -38,23 +40,23 @@ class phpbb_controller_resolver implements ControllerResolverInterface  	protected $container;  	/** -	* phpbb_style object -	* @var phpbb_style +	* phpbb\template\template object +	* @var phpbb\template\template  	*/ -	protected $style; +	protected $template;  	/**  	* Construct method  	* -	* @param phpbb_user $user User Object +	* @param \phpbb\user $user User Object  	* @param ContainerInterface $container ContainerInterface object -	* @param phpbb_style $style +	* @param \phpbb\template\template $template  	*/ -	public function __construct(phpbb_user $user, ContainerInterface $container, phpbb_style $style = null) +	public function __construct(\phpbb\user $user, ContainerInterface $container, \phpbb\template\template $template = null)  	{  		$this->user = $user;  		$this->container = $container; -		$this->style = $style; +		$this->template = $template;  	}  	/** @@ -62,7 +64,7 @@ class phpbb_controller_resolver implements ControllerResolverInterface  	*  	* @param Symfony\Component\HttpFoundation\Request $request Symfony Request object  	* @return bool|Callable Callable or false -	* @throws phpbb_controller_exception +	* @throws \phpbb\controller\exception  	*/  	public function getController(Request $request)  	{ @@ -70,20 +72,20 @@ class phpbb_controller_resolver implements ControllerResolverInterface  		if (!$controller)  		{ -			throw new phpbb_controller_exception($this->user->lang['CONTROLLER_NOT_SPECIFIED']); +			throw new \phpbb\controller\exception($this->user->lang['CONTROLLER_NOT_SPECIFIED']);  		}  		// Require a method name along with the service name  		if (stripos($controller, ':') === false)  		{ -			throw new phpbb_controller_exception($this->user->lang['CONTROLLER_METHOD_NOT_SPECIFIED']); +			throw new \phpbb\controller\exception($this->user->lang['CONTROLLER_METHOD_NOT_SPECIFIED']);  		}  		list($service, $method) = explode(':', $controller);  		if (!$this->container->has($service))  		{ -			throw new phpbb_controller_exception($this->user->lang('CONTROLLER_SERVICE_UNDEFINED', $service)); +			throw new \phpbb\controller\exception($this->user->lang('CONTROLLER_SERVICE_UNDEFINED', $service));  		}  		$controller_object = $this->container->get($service); @@ -93,16 +95,16 @@ class phpbb_controller_resolver implements ControllerResolverInterface  		* the style paths for the extension (the ext author can change them  		* if necessary).  		*/ -		$controller_dir = explode('_', get_class($controller_object)); +		$controller_dir = explode('\\', get_class($controller_object)); -		// 0 phpbb, 1 ext, 2 vendor, 3 extension name, ... -		if (!is_null($this->style) && isset($controller_dir[3]) && $controller_dir[1] === 'ext') +		// 0 vendor, 1 extension name, ... +		if (!is_null($this->template) && isset($controller_dir[1]))  		{ -			$controller_style_dir = 'ext/' . $controller_dir[2] . '/' . $controller_dir[3] . '/styles'; +			$controller_style_dir = 'ext/' . $controller_dir[0] . '/' . $controller_dir[1] . '/styles';  			if (is_dir($controller_style_dir))  			{ -				$this->style->set_style(array($controller_style_dir, 'styles')); +				$this->template->set_style(array($controller_style_dir, 'styles'));  			}  		} @@ -118,13 +120,13 @@ class phpbb_controller_resolver implements ControllerResolverInterface  	* @param Symfony\Component\HttpFoundation\Request $request Symfony Request object  	* @param mixed $controller A callable (controller class, method)  	* @return bool False -	* @throws phpbb_controller_exception +	* @throws \phpbb\controller\exception  	*/  	public function getArguments(Request $request, $controller)  	{  		// At this point, $controller contains the object and method name  		list($object, $method) = $controller; -		$mirror = new ReflectionMethod($object, $method); +		$mirror = new \ReflectionMethod($object, $method);  		$arguments = array();  		$parameters = $mirror->getParameters(); @@ -145,7 +147,7 @@ class phpbb_controller_resolver implements ControllerResolverInterface  			}  			else  			{ -				throw new phpbb_controller_exception($this->user->lang('CONTROLLER_ARGUMENT_VALUE_MISSING', $param->getPosition() + 1, get_class($object) . ':' . $method, $param->name)); +				throw new \phpbb\controller\exception($this->user->lang('CONTROLLER_ARGUMENT_VALUE_MISSING', $param->getPosition() + 1, get_class($object) . ':' . $method, $param->name));  			}  		} | 
