diff options
author | Nathan Guse <nathaniel.guse@gmail.com> | 2013-07-23 11:13:25 -0500 |
---|---|---|
committer | Nathan Guse <nathaniel.guse@gmail.com> | 2013-07-23 11:13:25 -0500 |
commit | 485c6ab3553f518b157610ee1144bbcbef63f797 (patch) | |
tree | 0c50392c4716511e118eeabd3f48cceb3ac7e906 /phpBB/includes/controller/resolver.php | |
parent | 41d8bfa974900c9befbde06cc08060eb8a552ec8 (diff) | |
parent | be59885d5fd4b44f1c43994dec928eda816f9ab8 (diff) | |
download | forums-485c6ab3553f518b157610ee1144bbcbef63f797.tar forums-485c6ab3553f518b157610ee1144bbcbef63f797.tar.gz forums-485c6ab3553f518b157610ee1144bbcbef63f797.tar.bz2 forums-485c6ab3553f518b157610ee1144bbcbef63f797.tar.xz forums-485c6ab3553f518b157610ee1144bbcbef63f797.zip |
Merge branch 'develop' of github.com:phpbb/phpbb3 into ticket/11667
# By Joas Schilling (224) and others
# Via Andreas Fischer (23) and others
* 'develop' of github.com:phpbb/phpbb3: (385 commits)
[ticket/11734] Readd accidently removed language strings of forum permissions
[ticket/11620] Whitespace and combine function into test_case
[ticket/11620] Move check_ban_test functions to setUp/tearDown for clarity
[ticket/11620] Changed incorrect global variable
[ticket/11620] Minor indentation changes and comment clarity
[ticket/11733] Fix "Illegal offset type" Warning caused by overall feed
[ticket/11733] Add browse test for feed.php
[ticket/11731] Remove static calls to captcha garbage collector
[ticket/11728] Replace topic_approved with topic_visibility
[ticket/11620] Expected and actual test conditions wrongly swapped
[ticket/11620] Space between . in directory import concatenation
[ticket/11620] Changes to match merge
[ticket/11620] Changes for code guidelines consistency
[ticket/11620] Fix a static calls to non-static for session captcha
[ticket/11620] Cleanup creation_test that was renamed on a cherry-pick
[ticket/11620] Update auth_provider for new interface
[ticket/11620] Added garbage_collection_test
[ticket/11620] Fixed check_ban_test errors with cache and ban warning message
[ticket/11620] Fixed a typo on check_ban_test
[ticket/11620] Refactored check_isvalid_test to use session_test_case
...
Diffstat (limited to 'phpBB/includes/controller/resolver.php')
-rw-r--r-- | phpBB/includes/controller/resolver.php | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/phpBB/includes/controller/resolver.php b/phpBB/includes/controller/resolver.php deleted file mode 100644 index 95dfc8da8e..0000000000 --- a/phpBB/includes/controller/resolver.php +++ /dev/null @@ -1,154 +0,0 @@ -<?php -/** -* -* @package controller -* @copyright (c) 2012 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\HttpFoundation\Request; - -/** -* Controller manager class -* @package phpBB3 -*/ -class phpbb_controller_resolver implements ControllerResolverInterface -{ - /** - * User object - * @var phpbb_user - */ - protected $user; - - /** - * ContainerInterface object - * @var ContainerInterface - */ - protected $container; - - /** - * phpbb_style object - * @var phpbb_style - */ - protected $style; - - /** - * Construct method - * - * @param phpbb_user $user User Object - * @param ContainerInterface $container ContainerInterface object - * @param phpbb_style $style - */ - public function __construct(phpbb_user $user, ContainerInterface $container, phpbb_style $style = null) - { - $this->user = $user; - $this->container = $container; - $this->style = $style; - } - - /** - * Load a controller callable - * - * @param Symfony\Component\HttpFoundation\Request $request Symfony Request object - * @return bool|Callable Callable or false - * @throws phpbb_controller_exception - */ - public function getController(Request $request) - { - $controller = $request->attributes->get('_controller'); - - if (!$controller) - { - 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']); - } - - list($service, $method) = explode(':', $controller); - - if (!$this->container->has($service)) - { - throw new phpbb_controller_exception($this->user->lang('CONTROLLER_SERVICE_UNDEFINED', $service)); - } - - $controller_object = $this->container->get($service); - - /* - * If this is an extension controller, we'll try to automatically set - * the style paths for the extension (the ext author can change them - * if necessary). - */ - $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') - { - $controller_style_dir = 'ext/' . $controller_dir[2] . '/' . $controller_dir[3] . '/styles'; - - if (is_dir($controller_style_dir)) - { - $this->style->set_style(array($controller_style_dir, 'styles')); - } - } - - return array($controller_object, $method); - } - - /** - * Dependencies should be specified in the service definition and can be - * then accessed in __construct(). Arguments are sent through the URL path - * and should match the parameters of the method you are using as your - * controller. - * - * @param Symfony\Component\HttpFoundation\Request $request Symfony Request object - * @param mixed $controller A callable (controller class, method) - * @return bool False - * @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); - - $arguments = array(); - $parameters = $mirror->getParameters(); - $attributes = $request->attributes->all(); - foreach ($parameters as $param) - { - if (array_key_exists($param->name, $attributes)) - { - $arguments[] = $attributes[$param->name]; - } - else if ($param->getClass() && $param->getClass()->isInstance($request)) - { - $arguments[] = $request; - } - else if ($param->isDefaultValueAvailable()) - { - $arguments[] = $param->getDefaultValue(); - } - else - { - throw new phpbb_controller_exception($this->user->lang('CONTROLLER_ARGUMENT_VALUE_MISSING', $param->getPosition() + 1, get_class($object) . ':' . $method, $param->name)); - } - } - - return $arguments; - } -} |