Cum as putea determina intr-o functie de rutare cand URL este de tipul site.ro/controller/parametru? Momentan pot redirectiona site.ro/controller/metoda/parametru atat cu controllerul si metoda in URL cat si dinamic cu verificare intr-un array.
Am ceva de genul.
public function __construct($routes){
$this->_routes = $routes;
$this->_url = $this->parseUrl();
$this->instatianteController();
}
public function instatianteController(){
$this->checkRoutes();
if(!$this->checkRoutes()){
if(file_exists('../controllers/' . $this->_url[0] . '.php')){
$this->_controller = $this->_url[0];
}
}
//return object
require_once '../app/controllers/' . $this->_controller . '.php';
$this->_controller = new $this->_controller;
if(isset($this->_url[1])){
if (method_exists($this->_controller, $this->_url[1])) {
$this->_method = $this->_url[1];
}
}
unset($this->_url[0], $this->_url[1]);
$this->_params = $this->_url ? array_values($this->_url) : [];
call_user_func_array([$this->_controller, $this->_method], $this->_params);
}
public function checkRoutes(){
/* $routes = array(
'test' => array(
'controller' => 'contact'
),
'about-us' => array(
'controller' => 'despre',
)
);
*/
foreach($this->_routes as $route => $components){
//ECHO __DIR__ . '../App.php';
if($route === $this->_url[0] && file_exists('../app/controllers/' . $components['controller'] . '.php')){
$this->_controller = $components['controller'];
if(isset($components['method'])){
$this->_method = $components['method'];
}
return true;
}
}
}
Multumesc.