Merge branch 'develop-ascraeus' into develop

* develop-ascraeus:
  [ticket/12529] Move $phpbb_root_path to the end of the constructor
  [ticket/12529] Use root_path in controller\resolver to check the template dir
This commit is contained in:
Joas Schilling 2014-05-11 15:47:23 +02:00
commit 8d17cf5a70
3 changed files with 15 additions and 6 deletions

View file

@ -104,6 +104,7 @@ services:
arguments: arguments:
- @user - @user
- @service_container - @service_container
- %core.root_path%
- @template - @template
controller.provider: controller.provider:

View file

@ -33,28 +33,36 @@ class resolver implements ControllerResolverInterface
/** /**
* phpbb\template\template object * phpbb\template\template object
* @var phpbb\template\template * @var \phpbb\template\template
*/ */
protected $template; protected $template;
/**
* phpBB root path
* @var string
*/
protected $phpbb_root_path;
/** /**
* Construct method * Construct method
* *
* @param \phpbb\user $user User Object * @param \phpbb\user $user User Object
* @param ContainerInterface $container ContainerInterface object * @param ContainerInterface $container ContainerInterface object
* @param string $phpbb_root_path Relative path to phpBB root
* @param \phpbb\template\template $template * @param \phpbb\template\template $template
*/ */
public function __construct(\phpbb\user $user, ContainerInterface $container, \phpbb\template\template $template = null) public function __construct(\phpbb\user $user, ContainerInterface $container, $phpbb_root_path, \phpbb\template\template $template = null)
{ {
$this->user = $user; $this->user = $user;
$this->container = $container; $this->container = $container;
$this->template = $template; $this->template = $template;
$this->phpbb_root_path = $phpbb_root_path;
} }
/** /**
* Load a controller callable * Load a controller callable
* *
* @param Symfony\Component\HttpFoundation\Request $request Symfony Request object * @param \Symfony\Component\HttpFoundation\Request $request Symfony Request object
* @return bool|Callable Callable or false * @return bool|Callable Callable or false
* @throws \phpbb\controller\exception * @throws \phpbb\controller\exception
*/ */
@ -94,7 +102,7 @@ class resolver implements ControllerResolverInterface
{ {
$controller_style_dir = 'ext/' . $controller_dir[0] . '/' . $controller_dir[1] . '/styles'; $controller_style_dir = 'ext/' . $controller_dir[0] . '/' . $controller_dir[1] . '/styles';
if (is_dir($controller_style_dir)) if (is_dir($this->phpbb_root_path . $controller_style_dir))
{ {
$this->template->set_style(array($controller_style_dir, 'styles')); $this->template->set_style(array($controller_style_dir, 'styles'));
} }
@ -109,7 +117,7 @@ class resolver implements ControllerResolverInterface
* and should match the parameters of the method you are using as your * and should match the parameters of the method you are using as your
* controller. * controller.
* *
* @param Symfony\Component\HttpFoundation\Request $request Symfony Request object * @param \Symfony\Component\HttpFoundation\Request $request Symfony Request object
* @param mixed $controller A callable (controller class, method) * @param mixed $controller A callable (controller class, method)
* @return bool False * @return bool False
* @throws \phpbb\controller\exception * @throws \phpbb\controller\exception

View file

@ -68,7 +68,7 @@ class phpbb_controller_controller_test extends phpbb_test_case
include(__DIR__.'/phpbb/controller/foo.php'); include(__DIR__.'/phpbb/controller/foo.php');
} }
$resolver = new \phpbb\controller\resolver(new \phpbb\user, $container); $resolver = new \phpbb\controller\resolver(new \phpbb\user, $container, dirname(__FILE__) . '/');
$symfony_request = new Request(); $symfony_request = new Request();
$symfony_request->attributes->set('_controller', 'foo.controller:handle'); $symfony_request->attributes->set('_controller', 'foo.controller:handle');