J'ai un problème que je n'arrive pas à comprendre.Méthode de chargement du contrôleur actuel
Je construis un petit framework (pratique) et maintenant je construis la librairie Validator. tout fonctionne super sauf quand j'essaye de corriger la règle du "callback". La règle de rappel est utilisée lorsque le dev a besoin d'utiliser une règle qui n'existe pas dans la bibliothèque Validator.
Voici comment je le fais.
Dans le contrôleur:
$this->validator->check('req|callback:test', $_POST['module_name'], 'Module Name');
Validator Classe:
public function check($rules, $input, $fieldname='') {
$rule = explode('|', $rules);
foreach ($rule as $r) {
$request = explode(":",$r,2);
$method = array_shift($request);
$parameter = $request;
array_unshift($parameter,$input);
array_push($parameter,$fieldname);
if (method_exists($this, $method)) {
call_user_func_array(array($this,$method), $parameter);
}
}
protected function callback($input, $key, $fieldname='') {
}
Mon problème est que, comment puis-je utiliser le contrôleur "courant". Par exemple, dans ce cas, je dois trouver:
UserController::test();
je peux trouver la bonne méthode dans la clé de $, mais est la façon simple à comprendre contrôleur Wich qui roule?
J'ai essayé d'utiliser l'URL comme:
$controller = ucfirst($uri->uri[1]).'Controller';
$controller::$key();
Mais cela n'a pas du tout .. Toutes les idées?
Je l'ai eu pour fonctionner maintenant et je peux valider le rappel du contrôleur courant MAIS, quand j'essaye de placer un message d'erreur comme: $ this-> validator-> set_error ("message d'erreur de rappel"); Il n'est pas enregistré dans le tableau d'erreurs de la classe de validateur. Pourquoi ça? – Tobias
Résolu avec call_user_func() :) Merci quand même. – Tobias