/** * Returns routes to connect to the given application. * * @param Application $app An Application instance * * @return ControllerCollection A ControllerCollection instance */ public function connect(Application $app) { $routesFactory = $app['controllers_factory']; if (0 == count($this->controllers)) { return $routesFactory; } foreach ($this->controllers as $controller) { if ($this->controllersAsApplicationAwareService) { $controller['Access'] = 'controller.' . $controller['Namespace'] . '.' . $controller['Name']; $controllerClass = $controller['Namespace'] . '\\' . $controller['Name']; $app[$controller['Access']] = $app->share(function () use($app, $controllerClass) { return new $controllerClass($app); }); } else { $controller['Access'] = $controller['Namespace'] . '\\' . $controller['Name'] . ':'; } Rules::connectController($routesFactory, $controller); } return $routesFactory; }
private static function stalkAnnot($needle, $haystack) { $sc = Rules::getVendorAnnotationShortCut(); $output = null; $regex = "/^.*{$sc}{$needle}\\s*(.*)\$/"; $line = preg_grep($regex, explode(PHP_EOL, $haystack)); preg_match($regex, reset($line), $output); return ($output and count($output) > 1) ? $output[1] : null; }