Bonjour à tous,
J'ai un soucis l'erreur suivante:
"Parse error: syntax error, unexpected T_OBJECT_OPERATOR in C:\wamp\www\SIA_website\Core\Dispatcheur.php on line 25"
d'après mes lecture le problème vients des fichier ".htaccess", j'ai vérifié er revérifié je ne voix pas l'erreur quelqu'un a une idée ?
les codes sources:
".htaccess" racine:
[code]RewriteEngine On
RewriteRule ^(.*) webroot/$1 [L][/code]
".htaccess" webroot:
[code]RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) Webroot/index.php/$1 [L][/code]
"dispatcheur":
[code]<?php
class Dispatcheur{
var $request;
function __construct(){
$this->request = new Request();
Routeur::parse($this->request->url, $this->request);
$controleur = $this->loadControleur();
//var_dump('apres appel: ',$controleur);
//$controleur->view($this->request->action);
//var_dump($controleur);
//var_dump($this->request->action);
//var_dump($this->request->params);
//var_dump(array($controleur, $this->request->action), $this-request->params);
//call_user_func_array(array($controleur, $this->request->action), $this-request->params);
//var_dump(array($controleur, $this->request->action), $this-request->params);
//call_user_func_array(array($controleur, $this->request->action),array());
call_user_func_array(array($controleur, $this->request->action), $this-request->params);
}
function loadControleur(){
$name = ucfirst($this->request->controleur).'PagesControleurs';
//var_dump($name);
$file = ROOT.DS.'Controleur'.DS.$name.'.php';
//var_dump($file);
//echo $file;
require $file;
//var_dump($this->request);
//var_dump(new $name($this-request));
//$controleur = new $name($this-request);
//var_dump('le controleur: ',$controleur);
//return $controleur;
return new $name($this-request);
}
}
?>[/code]
"request":
[code]<?php
class Request{
public $url; //URL demandé par l'utilisateur
function __construct(){
//$this->url = $_SERVER['PATH_INFO'];
$this->url = isset($_SERVER['PATH_INFO'])?$_SERVER['PATH_INFO']:'/';
//$this->url = str_replace(BASE_URL."/", "", $_SERVER['REQUEST_URI']);
//$this->url = str_replace(INIT."/", "", $_SERVER['REQUEST_URI']);
}
}
?>[/code]
"routeur":
[code]<?php
class Routeur{
/**
* Permet de parser une URL
* @param $url
* @return array de paramètres
**/
static function parse($url, $request){
//$url = trim($url,'/');
$params = explode('/',$url);
$request->controleur = $params[0];
$request->action = isset($params[1]) ? $params[1] : 'index';
//$request ->action = isset($params[1]) ? $params[1] : 'Vue';
$request->params = array_slice($params,2);
return true;
}
}
?>[/code]
"pagescontrolleurs":
[code]<?php
class PagesControleurs extends Controleur{
function view($nom){
echo 'vous avez demandé la page: '.$nom;
//echo 'vous voyer ? ';
}
}
?>[/code]
Juste pour info:
dans le dispatcheur :
[code]class Dispatcheur{
var $request;
function __construct(){
$this->request = new Request();
Routeur::parse($this->request->url, $this->request);
$controleur = $this->loadControleur();
var_dump($this->request->action);
var_dump($this->request->params);
//call_user_func_array(array($controleur, $this->request->action), $this-request->params);
}
[/code]
me donne:
"string '' (length=0)
array
empty"
et le code toujours dans le dispatcheur:
[code]class Dispatcheur{
var $request;
function __construct(){
$this->request = new Request();
Routeur::parse($this->request->url, $this->request);
$controleur = $this->loadControleur();
$controleur->view($this->request->action);
//call_user_func_array(array($controleur, $this->request->action), $this-request->params);
}[/code]
me donne en résultat: "vous avez demandé la page:"
Merci de m'aider !
Salut,
Même si c'est tard pour répondre voici la solution :
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php/$1 [L]