|
@@ -57,8 +57,18 @@ class ControllerResolver extends BaseControllerResolver
|
|
protected function createController($controller)
|
|
protected function createController($controller)
|
|
{
|
|
{
|
|
if (false === strpos($controller, '::')) {
|
|
if (false === strpos($controller, '::')) {
|
|
- // must be a controller in the a:b:c notation then
|
|
|
|
- $controller = $this->converter->fromShortNotation($controller);
|
|
|
|
|
|
+ $count = substr_count($controller, ':');
|
|
|
|
+ if (2 == $count) {
|
|
|
|
+ // controller in the a:b:c notation then
|
|
|
|
+ $controller = $this->converter->fromShortNotation($controller);
|
|
|
|
+ } elseif (1 == $count) {
|
|
|
|
+ // controller in the service:method notation
|
|
|
|
+ list($service, $method) = explode(':', $controller);
|
|
|
|
+
|
|
|
|
+ return array($this->container->get($service), $method);
|
|
|
|
+ } else {
|
|
|
|
+ throw new \LogicException(sprintf('Unable to parse the controller name "%s".', $controller));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
list($class, $method) = explode('::', $controller);
|
|
list($class, $method) = explode('::', $controller);
|