Ubiquity  2.0.0
php rapid development framework
Controller.php
Go to the documentation of this file.
1 <?php
2 
7 namespace Ubiquity\controllers;
8 
11 
18 abstract class Controller {
24  protected $view;
25 
29  abstract public function index();
30 
35  public function __construct() {
36  if (!$this->isValid())
37  $this->onInvalidControl();
38  $this->view=new View();
39  }
40 
45  public function initialize() {
46  }
47 
52  public function finalize() {
53  }
54 
64  public function loadView($viewName, $pData=NULL, $asString=false) {
65  if (isset($pData))
66  $this->view->setVars($pData);
67  return $this->view->render($viewName, $asString);
68  }
69 
75  public function isValid() {
76  return true;
77  }
78 
83  public function onInvalidControl() {
84  \header('HTTP/1.1 401 Unauthorized', true, 401);
85  }
86 
96  public function forward($controller, $action="index", $params=array(), $initialize=false, $finalize=false) {
97  $u=array ($controller,$action );
98  if (\is_array($params)) {
99  $u=\array_merge($u, $params);
100  } else {
101  $u=\array_merge($u, [ $params ]);
102  }
103  return Startup::runAction($u, $initialize, $finalize);
104  }
105 
114  public function redirectToRoute($routeName,$parameters=[],$initialize=false,$finalize=false){
115  $path=Router::getRouteByName($routeName,$parameters);
116  if($path!==false){
117  $route=Router::getRoute($path,false);
118  if($route!==false){
119  return $this->forward($route[0],$route[1],\array_slice($route, 2),$initialize,$finalize);
120  }else{
121  throw new RouterException("Route {$routeName} not found",404);
122  }
123  }else{
124  throw new RouterException("Route {$routeName} not found",404);
125  }
126  }
127 }
isValid()
Returns True if access to the controller is allowed To be override in sub classes.
Definition: Controller.php:75
finalize()
Method called after each action Can be override in derived class.
Definition: Controller.php:52
loadView($viewName, $pData=NULL, $asString=false)
Loads the view $viewName possibly passing the variables $pdata.
Definition: Controller.php:64
Base class for controllers.
Definition: Controller.php:18
static getRoute($path, $cachedResponse=true)
Definition: Router.php:34
forward($controller, $action="index", $params=array(), $initialize=false, $finalize=false)
Loads the controller $controller and calls its $action method by passing the parameters $params...
Definition: Controller.php:96
static runAction($u, $initialize=true, $finalize=true)
Definition: Startup.php:85
initialize()
Method called before each action Can be override in derived class.
Definition: Controller.php:45
Représente une vue.
Definition: View.php:14
static getRouteByName($name, $parameters=[], $absolute=true)
Returns the generated path from a route.
Definition: Router.php:104
This file is part of Ubiquity framework.
__construct()
Constructor Automatically invokes the isValid () method to check if access is allowed.
Definition: Controller.php:35
onInvalidControl()
Called if isValid () returns false To be override in sub classes.
Definition: Controller.php:83
redirectToRoute($routeName, $parameters=[], $initialize=false, $finalize=false)
Redirect to a route by its name.
Definition: Controller.php:114