Commit b8edf1f7 authored by thibaut-felten's avatar thibaut-felten

Request maj

parent 92205143
<?php
// define __ROOT_DIR constant which contains the absolute path on disk
// of the directory that contains this file (index.php)
// e.g. http://eden.imt-lille-douai.fr/~luc.fabresse/index.php => __ROOT_DIR = /home/luc.fabresse/public_html
$rootDirectoryPath = realpath(dirname(__FILE__));
define ('__ROOT_DIR', $rootDirectoryPath );
// Load all application config
require_once(__ROOT_DIR . "/config/config.php");
......@@ -15,7 +13,6 @@
// Reify the current request
$request = Request::getCurrentRequest();
Response::interceptEchos();
try {
$controller = Dispatcher::dispatch($request);
$response = $controller->execute();
......
......@@ -14,31 +14,31 @@ private function load($className) {
// it is in one of these subdirectory '/classes/', '/model/', '/controller/'
// if it is a model, load its sql queries file too in sql/ directory
if(strpos($className, "Controller") !==FALSE){
$classFile .= "../controller/";
$classFile .= __ROOT_DIR . "/controller/";
}else if(strpos($className, "Model") !==FALSE){
$classFile .= "../model/";
$classFile .= __ROOT_DIR . "/model/";
}else if(strpos($className, "Role") !==FALSE){
$classFile .= "../model/";
$classFile .= __ROOT_DIR . "../model/";
}else if(strpos($className, "User") !==FALSE){
$classFile .= "../model/";
$classFile .= __ROOT_DIR . "/model/";
}else if(strpos($className, "Response") !==FALSE){
$classFile .= "../classes/";
$classFile .= __ROOT_DIR . "/classes/";
}else if(strpos($className, "Request") !==FALSE){
$classFile .= "../classes/";
$classFile .= __ROOT_DIR . "/classes/";
}else if(strpos($className, "Dispatcher") !==FALSE){
$classFile .= "../classes/";
$classFile .= __ROOT_DIR . "/classes/";
}else if(strpos($className, "DatabasePDO") !==FALSE){
$classFile .= "../classes/";
$classFile .= __ROOT_DIR . "/classes/";
}
$classFile.=.$className.".class.php";
$classFile.=$className.".class.php";
include $classFile;
}
}
......
<?php
class Request {
protected $controllerName;
protected $uriParameters;
protected $controllerName;
protected $uriParameters;
protected static $request = NULL;
public static function getCurrentRequest(){
// T
}
public static function getCurrentRequest(){
if(is_null(static::$request))
static::$request = new static();
return static::$request;
}
public function __construct() {
$this->initBaseURI();
......@@ -17,7 +21,8 @@ class Request {
// e.g. http://eden.imt-lille-douai.fr/~luc.fabresse/api.php => __BASE_URI = /~luc.fabresse
// e.g. http://localhost/CDAW/api.php => __BASE_URI = /CDAW
protected function initBaseURI() {
$this->baseURI = // TODO
$url = dirname($_SERVER['SCRIPT_NAME']);
$this->baseURI = $url;
}
// intialise controllerName et uriParameters
......@@ -30,10 +35,21 @@ class Request {
// => controllerName == 'user'
// uriParameters == [ 1 ]
protected function initControllerAndParametersFromURI(){
$this->controllerName = // TODO
$this->uriParameters = // TODO
}
$prefix = $_SERVER['SCRIPT_NAME'];
$uriParameters = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$i=0;
while($i<strlen($prefix) && $i<strlen($uriParameters))
if($prefix[$i]===$uriParameters[$i]){
$i++;
}
$uriParameters = substr($uriParameters, $i);
$uriParameters = trim($uriParameters, '/');
$uriSegments = explode('/', $uriParameters);
$this->controllerName = array_shift($uriSegments) ?: "default";
$this->uriParameters = $uriSegments;
}
// ==============
// Public API
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment