Esempio n. 1
0
 /**
  * Returns redirect response to given route.
  *
  * @param string $routeName
  * @param array  $routeParams
  *
  * @return Response
  */
 protected function redirectRoute($routeName, $routeParams = [])
 {
     $generator = $this->container->get('url_generator');
     return $this->redirect($generator->path($routeName, $routeParams));
 }
 public function provide(Container $container)
 {
     $container->provide('action_resolver', function ($container) {
         return new \Worky\Routing\ActionResolver($container, $container->get('route_container'));
     });
     $container->provide('route_container', function ($container) {
         return new \Worky\Routing\RouteContainer();
     });
     $container->provide('url_generator', function ($container) {
         return new \Worky\Routing\UrlGenerator($container->get('route_container'), $container->get('request'));
     });
     $container->mark('url_generator', 'view_helper', ['alias' => 'urlGenerator']);
     $container->provide('view_renderer', function ($container) {
         $helpers = $container->getMarkedServices('view_helper');
         $helperInstances = [];
         foreach ($helpers as $serviceName => $markParams) {
             if (!isset($markParams['alias'])) {
                 throw new \Exception('When marking service as view_helper, alias parameter must be provided');
             }
             $helperInstances[$markParams['alias']] = $container->get($serviceName);
         }
         return new \Worky\Rendering\ViewRenderer($container->parameters['view_dir'], $helperInstances);
     });
     $container->provide('pdo', function ($container) {
         $config = $container->parameters['pdo'];
         $options = @$config['options'];
         $dsn = $config['driver'];
         $username = @$config['username'];
         $password = @$config['password'];
         if (is_array($options)) {
             $dsnOptions = '';
             foreach ($options as $key => $value) {
                 $dsnOptions .= "{$key}={$value};";
             }
         } elseif (is_string($options)) {
             $dsnOptions = $options;
         }
         if ($options) {
             $dsn .= ":{$dsnOptions}";
         }
         $pdo = new \PDO($dsn, $username, $password);
         return $pdo;
     });
 }
Esempio n. 3
0
 public function handle(Request $request)
 {
     $this->container->set('request', $request);
     $action = $this->container->get('action_resolver')->resolve($request);
     return call_user_func($action->callable, $action->parameters);
 }