当前位置: 首页>>代码示例>>PHP>>正文


PHP ControllerResolver::createController方法代码示例

本文整理汇总了PHP中Symfony\Component\HttpKernel\Controller\ControllerResolver::createController方法的典型用法代码示例。如果您正苦于以下问题:PHP ControllerResolver::createController方法的具体用法?PHP ControllerResolver::createController怎么用?PHP ControllerResolver::createController使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Symfony\Component\HttpKernel\Controller\ControllerResolver的用法示例。


在下文中一共展示了ControllerResolver::createController方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: createController

 /**
  * Returns a callable for the given controller.
  *
  * @param string $controller A Controller string
  *
  * @return mixed A PHP callable
  *
  * @throws \LogicException           When the name could not be parsed
  * @throws \InvalidArgumentException When the controller class does not exist
  */
 protected function createController($controller)
 {
     if (false === strpos($controller, '::')) {
         $count = substr_count($controller, ':');
         if (2 == $count) {
             // controller in the a:b:c notation then
             $controller = $this->parser->parse($controller);
         } elseif (1 == $count) {
             // controller in the service:method notation
             list($service, $method) = explode(':', $controller, 2);
             return array($this->container->get($service), $method);
         } elseif ($this->container->has($controller) && method_exists($service = $this->container->get($controller), '__invoke')) {
             return $service;
         } else {
             throw new \LogicException(sprintf('Unable to parse the controller name "%s".', $controller));
         }
     }
     return parent::createController($controller);
 }
开发者ID:Dren-x,项目名称:mobit,代码行数:29,代码来源:ControllerResolver.php

示例2: createController

 /**
  * Returns a callable for the given controller.
  *
  * @param string $controller A Controller string
  *
  * @return mixed A PHP callable
  *
  * @throws \LogicException           When the name could not be parsed
  * @throws \InvalidArgumentException When the controller class does not exist
  */
 protected function createController($controller)
 {
     if (false === strpos($controller, '::')) {
         $count = substr_count($controller, ':');
         if (2 == $count) {
             // controller in the a:b:c notation then
             $controller = $this->parser->parse($controller);
         } elseif (1 == $count) {
             // controller in the service:method notation
             list($service, $method) = explode(':', $controller, 2);
             return array($this->container->get($service), $method);
         } elseif ($this->container->has($controller)) {
             $controllerInstance = $this->container->get($controller);
             if (!method_exists($controllerInstance, '__invoke')) {
                 $exceptionMessage = sprintf('The class "%s" specified as controller service "%s" must define an __invoke method, but does not.', get_class($controllerInstance), $controller);
                 throw new \LogicException($exceptionMessage);
             }
             return $controllerInstance;
         } else {
             throw new \LogicException(sprintf('Unable to parse the controller name "%s".', $controller));
         }
     }
     return parent::createController($controller);
 }
开发者ID:afoeder,项目名称:symfony,代码行数:34,代码来源:ControllerResolver.php


注:本文中的Symfony\Component\HttpKernel\Controller\ControllerResolver::createController方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。