J’écris beaucoup de code Javascript ces temps ci, et une des choses que j’apprécie le plus est la notation d’objet Javascript (aussi appelée JSON). Par exemple, au lieu d’utiliser ce code :
function enregistrer(prenom, nom, openid) {
return prenom+" "+nom+" <"+openid+">";
}
j’utilise celui-ci :
/**
* param {Object} infos
*/
function enregistrer(infos) {
return infos.prenom+" "+infos.nom+" <"+infos.openid+">";
}
ce qui me permet ensuite d’embellir mon appel de fonction :
//au lieu de: enregistrer("Rémi", "Prévost", "http://remiprevost.com/");
enregistrer({
"prenom" : "Rémi",
"nom" : "Prévost",
"openid" : "http://remiprevost.com/"
});
Je trouve que non seulement cela est plus beau visuellement, cela évite la confusion créée par un trop grand nombre de paramètre à une fonction. Lorsqu’on est rendu avec une fonction qui compte plus que 5 paramètres, je crois qu’il est temps d’utiliser un objet qui contient ces derniers — de sorte à ce qu’on ne se retrouve pas avec une fonction comme celle-ci :
function enregistrer(prenom, nom, openid, adresse, codepostal, province, pays) {
// ...
}
enregistrer("Rémi", "Prévost", "http://remiprevost.com", "G0R2T0", "Canada... heu... ah non merde! On doit passer la province avant!");
J’aimerais bien pouvoir utiliser une notation d’objet simple en PHP de façon native. La façon la plus simple que je connaisse est d’utiliser un nouvel objet stdClass :
$obj = new stdClass();
$obj->nom = "Rémi";
$obj->prenom = "Prévost";
$obj->openid = "http://remiprevost.com/";
enregistrer($obj);
Quelqu’un a une autre méthode à me suggérer?
Un tableau ?
Plus simple à affecter, mois gourmand en mémoire. Autant je suis adepte de la prog Objet, autant là c’est se fatiguer pour rien, amha.
$obj = array( 'nom' => 'Rémi', 'prenom' => 'Prévost', 'openid' => 'http://remiprevost.com' ); enregistrer($obj);My 2 cents…
PS: Pas de retour à la ligne possible dans le code ?
Tonio (4 janvier 2008 à 6:17 EST)
En effet, j’y ai pensé plus tard dans la soirée mais je n’ai pas eu le temps de mettre à jour le billet. Un tableau est une excellente idée — et même que je simplifierais encore ton code :
Oh et en passant, pour faire des blocs de code, il suffit de précéder les lignes de code par 4 espacements ou 1 tabulation. Et en bonus, si la première ligne est soit
{{{html}}},{{{css}}},{{{javascript}}}ou{{{php}}}(précédée des caractères mentionnés ci-haut), on obtient une syntaxe colorée!Rémi Prévost (4 janvier 2008 à 8:18 EST)