Rebonsoir
J'ai effectivement testé et j'ai décidé de partir sur Slim Framework pour gérer mes routes en suivant le tutoriel sur Slim Framework posté par grafikart. Je me retrouve en revanche confronté à un soucis. J'ai décidé de créer une classe modèle bien entendu pour gérer mes interactions avec la base de donnée. Et je me retrouve avec cette erreur :
Slim Application Error
The application could not run because of the following error:
Details
Type: ErrorException
Code: 2
Message: Missing argument 1 for Model::__construct(), called in /Users/Alexandre/Sites/alexandre/libs/autoload.php on line 36 and defined
File: /Users/Alexandre/Sites/alexandre/libs/class/model.class.php
Line: 20
Voici ma classe Model (en cours de réalisation mais au moment du premier test, ça plante...):
class Model
{
// Slim Framework
protected $app;
public function __construct($app) // ligne 20 bien sûr
{
$this->app = $app;
}
public function delete($table, $field, $id)
{
$this->app->pdo->prepare("DELETE FROM " . PREFIX . $table . " WHERE $field=:id");
$this->app->pdo->execute(array('id' => intval($id)));
}
}
Le routeur donc :
class Router
{
// Slim Framework
private $app;
public function __construct($app)
{
$this->app = $app;
}
public function call($method, $url, $action)
{
return $this->app->$method($url, function() use ($action)
{
$action = explode('@', $action);
$controller_name = $action[0] . 'Controller';
$method = $action[1];
$controller = load_class($controller_name, $this->app);
call_user_func_array(array($controller, $method), func_get_args());
});
}
public function get($url, $action)
{
return $this->call('get', $url, $action);
}
public function post($url, $action)
{
return $this->call('post', $url, $action);
}
}
Et la classe controller :
class Controller
{
// Slim Application
protected $app;
protected $model;
public function __construct($app)
{
$this->app = $app;
}
}
Je ne comprends pas mon erreur, je ne vois pas en quoi il me manque un argument dans mon constructeur :/, alors j'ai peut être raté une étape mais après de nombreuses recherches, je n'avance toujours pas :/
Si quelqu'un a la réponse ou une explication je suis preneur :)