Lorsque je code en Javascript (en utilisant jQuery, bien entendu), les méthodes que j’écris prennent souvent la forme suivante :
function get_billets(params) {
var def = {
limit: 10,
orderby: 'billet_id'
}
params = $.extend(def, params);
//...
}
get_billets({ limit: 5 });
Cela me permet de ne pas me soucier de l’ordre des arguments passés à ces méthodes — j’en avais également parlé dans ce billet le mois dernier. J’utilise la méthode extend() de jQuery qui permet de compléter un objet avec un autre. Dans ce cas-ci, il s’agit d’un objet contenant les propriétés par défaut de la méthode et de l’objet passé en argument.
Lorsque j’ai commencé à porter le code de ce blogue vers Kohana, je me suis dis qu’il serait intéressant d’écrire mes méthodes avec cette technique. Voici comment je m’y prends en PHP (en utilisant le même exemple que la méthode ci-haut) :
function get_billets($params=array()) {
$def = array(
'limit' => 10,
'orderby' => 'billet_id'
);
$params = array_merge($def, $params);
//...
}
get_billets(array( 'limit'=>5 ));
C’est simple. non? La fonction array_merge() se charge de tout!
C’est ça qui me manque vraiment en PHP, pouvoir écraser certaines functions avec des parametres différents :/ Mais bon, ta méthode est plus évolutive donc c’est cool (et ya du JSON pour le js <3)
Palleas (7 février 2008 à 7:46 EST)
Ce qu’il faudrait, c’est un genre de PHPON (PHP Object Notation) qui soit natif à PHP.
Je sais que PHP supporte JSON, mais le fait de devoir toujours passer par les fonctions
json_encodeetjson_decoden’est pas très pratique. Ça l’est seulement lorsqu’on retourne des données via AJAX.Rémi Prévost (7 février 2008 à 8:20 EST)