當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。