コード例 #1
0
ファイル: View.php プロジェクト: p-m-d/naf-action
 public function __construct($request = null, $response = null, $options = array())
 {
     $this->viewConfig(Config::merge(self::$view, static::$view, $options));
     $this->request = $request ?: Action::request();
     $this->response = $response ?: Action::response();
     if (isset($this->viewConfig['type'])) {
         $this->response->type = $this->viewConfig['type'];
     } else {
         $this->viewConfig['type'] = $this->response->type;
     }
 }
コード例 #2
0
ファイル: App.php プロジェクト: p-m-d/naf
 /**
  *
  * @param array $config
  */
 public static function bootstrap(array $config = [])
 {
     $defaults = ['debug' => false, 'app' => ['namespace' => 'App'], 'error' => []];
     $params = compact('defaults', 'config');
     return static::filterStaticMethod(__FUNCTION__, $params, function ($self, $params) {
         extract($params);
         $config = Config::merge($defaults, $config);
         Config::set(null, $config);
         $self::provide(Config::get('App.namespace'));
     });
 }
コード例 #3
0
ファイル: Action.php プロジェクト: p-m-d/naf-action
 public static function dispatch()
 {
     $request = static::request();
     static::filterStaticMethod(__FUNCTION__, compact('request'), function ($self, $params) {
         extract($params);
         $filterParams = [];
         foreach ($self::$_dispatchFilters as $pattern => $filter) {
             if (preg_match($pattern, $request->url, $params)) {
                 if (is_callable($filter)) {
                     if ($_filterParams = call_user_func($filter, $request, $filterParams)) {
                         $_filterParams = Config::merge($filterParams, $filter);
                     }
                 } else {
                     $filterParams = Config::merge($filterParams, $filter);
                     array_map(function ($v, $k) use(&$filterParams) {
                         if (is_string($k)) {
                             $filterParams[$k] = $v;
                         }
                     }, $params, array_keys($params));
                 }
             }
         }
         $request->params = Config::merge($request->params, $filterParams);
         if (!($routeParams = $self::match($request, $filterParams))) {
             $message = 'Cannot route request';
             throw new NotFoundException($message);
         }
         $request->params = Config::merge($request->params, $routeParams);
         $self::$requests[] = $request;
     });
     return static::call($request);
 }