Example #1
0
 /**
  * Verifies collection is correct type and calls connect on providers.
  *
  * Note: This is the same code as {@see Silex\Application::mount}
  *
  * @param ControllerProviderInterface|ControllerCollection $collection
  *
  * @throws LogicException If controllers is not an instance of ControllerProviderInterface or ControllerCollection
  *
  * @return ControllerCollection
  */
 protected function verifyCollection($collection)
 {
     if ($collection instanceof ControllerProviderInterface) {
         $connectedControllers = $collection->connect($this->app);
         if (!$connectedControllers instanceof ControllerCollection) {
             throw new LogicException(sprintf('The method "%s::connect" must return a "ControllerCollection" instance. Got: "%s"', get_class($collection), is_object($connectedControllers) ? get_class($connectedControllers) : gettype($connectedControllers)));
         }
         $collection = $connectedControllers;
     } elseif (!$collection instanceof ControllerCollection) {
         throw new LogicException('The "mount" method takes either a "ControllerCollection" or a "ControllerProviderInterface" instance.');
     }
     return $collection;
 }
Example #2
0
 /**
  * Mounts controllers under the given route prefix.
  *
  * @param string                                           $prefix      The route prefix
  * @param ControllerCollection|ControllerProviderInterface $controllers A ControllerCollection or a ControllerProviderInterface instance
  *
  * @return Application
  */
 public function mount($prefix, $controllers)
 {
     if ($controllers instanceof ControllerProviderInterface) {
         $connectedControllers = $controllers->connect($this);
         if (!$connectedControllers instanceof ControllerCollection) {
             throw new \LogicException(sprintf('The method "%s::connect" must return a "ControllerCollection" instance. Got: "%s"', get_class($controllers), is_object($connectedControllers) ? get_class($connectedControllers) : gettype($connectedControllers)));
         }
         $controllers = $connectedControllers;
     } elseif (!$controllers instanceof ControllerCollection) {
         throw new \LogicException('The "mount" method takes either a "ControllerCollection" or a "ControllerProviderInterface" instance.');
     }
     $this['controllers']->mount($prefix, $controllers);
     return $this;
 }