Quand j'ai commencé avec PHP, j'étais vraiment content de la façon dont PHP était faiblement typé et comment il était facile à apprendre. Mais au fur et à mesure que j'y avais grandi, je me suis rendu compte qu'être faussement typé compliquait mes scripts plutôt que de les simplifier. Et maintenant je cherche des façons que je pourrais fort tapez mes variables PHP, en particulier les variables d'entrée ($_POST
, $_GET
, $_COOKIE
, $_REQUEST
et certains $_SERVER
vars). Je souhaite également que ma validation et ma désinfection soient masquées dans ce processus afin que je puisse "oublier" l'injection SQL et de nombreux autres processus de validation sujets aux erreurs. J'ai une ébauche de la façon dont je veux que ce soit.Est-il possible de forcer vos variables d'entrée PHP à être fortement typées
D'abord, je déclare la variable. De préférence en POO
$varClass->post->variable_name->type('STR', 'SQL', 'EMAIL');
// or as an array
$_MY_POST['variable_name'] = array('STR', 'SQL', 'EMIAIL');
Maintenant, je pourrais peut-être juste laisser tomber toute variable non déclarée des GLOBALS PHP prédéfinies et utiliser le type de variable pour valider et désinfectez directement dans les tableaux mondiaux.
Je pourrais également définir les valeurs de variables non validées comme un emaill à bool false et non soumis à null et les utiliser lors de la validation des données. Cependant, avant que je sois allé et ai réinventé la roue j'espérais:
quelqu'un pourrait me diriger vers une bibliothèque qui a déjà aidé à résoudre mes problèmes?
s'il y avait des raisons pour lesquelles je ne devrais pas poursuivre sur cette fantaisie sauvage? Des façons meilleures et plus claires d'y parvenir?
et D'autres idées générales que vous pourriez avoir à propos de cette idée?
Oh, mon dieu, comment je voudrais pouvoir forcer une frappe plus forte sur PHP ... mais non, pas vraiment. Je pense que nous aurons bientôt des indices sur les primitives, ce qui serait certainement un plus. –
Suite à mon dernier commentaire: le type scalaire ne cesse de revenir en PHP http://sebastian-bergmann.de/archives/900-Scalar-Type-Hints-in-PHP-5.3.99.html#content –
Alors que je pense appliquer des types dans les frontières de PHP sur la programmation de culte de cargaison, il y a en fait une implémentation qui fait ce que vous essayez de faire: http://sourceforge.net/p/php7framework/wiki/input/ – mario