Bonsoir, je travail actuellement sur beaucoup de projet ayant une architecture MVC et j'ai toujours ce besoin de faire des vérification de post dans le controller c'est à dire sa:
<?php
if(isset($_POST)) { } ou encore if(count($_POST) > 0) { }
et c'est relativement chien alors j'ai décider de crée une fonction qui permet de faire ceci mais sa ne marche pas voici ma fonction:
public static function Post($function) {
if(isset($_POST)) {
if(!empty($_POST)) {
return $function;
}
}
}
Merci d'avance.
Salut!
Bon, je ne sais pas trop ce que tu voulais en réalité, mais je crois avoir compris que tu voulais un truc te permettant de vérifier si ton formulaire avait été envoyé. Normalement si tu travailles sur un framework MVC, tu as des outils déjà conçu pour la vérification des requêtes. En passant, rien ne t’oblige à placer du code dans une classe ou hors d'une classe. Cela dit si tu veux que ton code soit portable et maintenable, tu devrais penser à faire des composantes à ton contrôleur puisque c'est là que sera capter la requête (en ce qui te concerne). Par exemple, sur CakePHP il existe une fonction dans l'objet Request qui permet de vérifier le type de requête ($this->request->is('post'));
M'enfin... je ne suis pas là pour écrire une logique parfaite pour toi. D'ailleurs tu devrais penser à t'informer sur la programmation en général plutôt que de passer sur un framework MVC... c'est loin d'être de ton niveau. PHP.net est ton meilleur ami à présent!
<?php
class UtilForm /* Attention à tes noms de classe... C'est même pas très utile faire une classe... */
{
public static function estPost(callable $rappel = null)
{
if (isset($_POST) && !empty($_POST) && $rappel != null)
return call_user_func($rappel);
return false;
}
}
UtilForm::estPost(function()
{
echo "Ce que tu veux faire ici! En plus, c'est optionnel!";
});
var_dump(UtilForm::estPost());
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test UtilForm::estPost(callable $rappel)</title>
</head>
<body>
<form action="/test.php" method="post">
<input type="text" name="nom"/>
<input type="submit" value="Envoyer" />
</form>
</body>
</html>
Amicalement,
Ramz.
Si je comprend bien, tu voudrais quelque chose comme ca ?
<?php
class PostClass
{
public static function Post($function)
{
if (isset($_POST) and !empty($_POST))
{
$function();
}
}
}
PostClass::Post(function()
{
echo $_POST'login'] . PHP_EOL;
});
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
<form action="" method="post">
<input type="text" name="login" placeholder="Enter your login" />
<input type="submit" value="Send" />
</form>
</body>
</html>
Ramzz1994 Merci beaucoup pour ton aide mais explique moi pourquoi je suis obligé de faire function() { } dans la fonction estPost(); ?