#AUTORISER et null

Hello les amis,

Comme je suis un peu à coté de la plaque depuis quelques mois et j’ai du rater un truc.

Sur la 4.2 en dev les autorisations du noiZetier (appels en PHP) ne fonctionnaient plus, enfin uniquement celles où je passais 0 ou '' dans $id et $qui pour dire que je n’avais pas utilité de ces arguments.
Bon en relisant le PHPDoc il est clair qu’il faut passer null, ce que j’ai fait et c’est nickel.

Mais j’ai aussi des appels à #AUTORISER pour lesquels dans ces cas là je passe la chaine vide ''.
Est-ce que c’est bon ou faut-il passer autre chose pour forcer null ?

Merci d’avance

Le Samedi, Août 06, 2022 18:26 CEST, Eric Lupinacci via Discuter de SPIP noreply@discuter.spip.net a écrit:

Eric Lupinacci eric_tonton
Août 6

Hello les amis,

Comme je suis un peu à coté de la plaque depuis quelques mois et j’ai du rater un truc.

Sur la 4.2 en dev les autorisations du noiZetier (appels en PHP) ne fonctionnaient plus, enfin uniquement celles où je passais 0 ou '' dans $id et $qui pour dire que je n’avais pas utilité de ces arguments.
Bon en relisant le PHPDoc il est clair qu’il faut passer null, ce que j’ai fait et c’est nickel.

Mais j’ai aussi des appels à #AUTORISER pour lesquels dans ces cas là je passe la chaine vide ''.
Est-ce que c’est bon ou faut-il passer autre chose pour forcer null ?

Merci d’avance


Voir le sujet ou répondre à ce courriel pour répondre.

Pour vous désabonner de ces courriels, cliquez ici.

Euh @maieul y a pas un truc qui a merdé là dans ta réponse ?

Autre question aussi.
En cherchant un peu dans mes autres plugins j’ai trouvé des prototypes qui me semblent vieillots pour l’autorisation du menu, à savoir :

autoriser_taxons_menu_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL)

Il y en a beaucoup de ce type dans les plugins.
Est-on d’accord qu’il faudrait revenir à un prototype classique sans valeur par défaut ou pas ?

Alors, effectivement on n’est pas censé appeler ces fonctions directement (passer par autoriser() donc), et par conséquent pas besoin de valeurs par défaut. Par contre le typage est très utile pour l’analyse statique et pour obtenir des erreurs précoces en cas de problèmes.

(string $faire, string $type, $id, array $qui, array $opt): bool

Dans #AUTORISER tu peux utiliser #NULL si tu veux transmettre explicitement cette valeur. Cela dit, la fonction autoriser() gère $qui = '' ou $qui = null en entrée (prend l’auteur connecté). Quant à $id ça reste libre (null, string, int a priori)