Article complet: Typage complet des arguments d'une fonction en PHP5.3 ?

03/07/2009

Permalink 10:08:19, Catégories: php, 301 mots   French (FR) , julien pauli

Typage complet des arguments d'une fonction en PHP5.3 ?

Dès la sortie de PHP5.3, un nouveau débat (nouveau ... pourtant vieux de plusieurs années déja) a ressurgi sur les mailing-lists internes.
A quand le typage complet des arguments de méthode ?
Actuellement, il n'est possible de typer qu'un objet d'une classe, ou encore un "array", on a donc ridiculement un typage incomplet, que les afiçionados d'autres langages ne manquent pas de nous renvoyer en pleine tête ;-)

Ilia Alshanetsky possédait un patch pour 5.2 rajoutant un support à la fois complet et souple, il l'a porté sur 5.3 et le remet donc sur la table au sein du PHP Group. Vous pouvez lire son billet blog ici

Vous pouvez suivre des fils de discussion par exemple ici, sur les @internals.

Sinon, il existe encore une page très intéressante sur le wiki de PHP, proposant un support total du typage des fonctions : non seulement tous ces arguments peuvent être typés, mais aussi sa valeur de retour.
Enfin une bonne idée ! Mais malheureusement pas encore dans PHP, en effet le PHPGroup n'est pas d'accord avec lui-même. Certains pensent que PHP devrait évoluer vers un tel typage (qui pour rappel resterait entièrement facultatif comme l'est le typage actuel) , d'autres pensent qu'au contraire typer strictement une fonction enlèverait de la souplesse à PHP dans la mesure où si une méthode type sur un entier, lui passer "1" mènerait à une erreur alors que par transtypage cela est valide.

Ce que j'en pense moi ? J'aime l'idée d'Ilia : un typage souple et efficace, à l'image de PHP, mais s'il vous plait : vite vite vite !
PHP a vraiment mûri ces dernières années, et avec l'avènement des frameworks qui apportent un cadre strict à PHP, une telle fonctionnalité serait vraiment la bienvenue !
Peut-être pour PHP 5.4 ?

Social Bookmarking:

                                     

Commentaires:

Connectez-vous pour vous abonner à cet article:

Flux de commentaires pour cet article : Atom 1.0  RSS 2.0
Commentaire de: collation [Membre]
Il y a un bon moment, un contributeur de php.net avait posté une bidouille pour ajouter le type hinting des scalaires dans PHP sans aucun patch. La voici reprise: http://www.desfrenes.com/blog/post/php5-et-type-hinting

Après un peu de pratique avec cette classe, je ne suis pas certain que le typage des scalaires soit une vraie bonne idée.
Permalien 03/07/2009 @ 11:53
Commentaire de: oOSebOo [Membre]
Salut Julien et merci pour avoir encore fait un article intéressant.

Concernant le typage des arguments d'une fonction, je pense également que c'est nécessaire. Certe PHP est souple, et ce point lui enlève un petit peu de souplesse, mais d'un autre coté, tu dois pouvoir maitriser ce que ta fonction reçoit en paramètre.

Ca évite également de se lancer dans de la programmation défensive avec des codes du genre :

public function add_product($product_to_insert) {
if (!is_array ( $product_to_insert )) {
$this->log_error ( "Incorrect param in method ".__METHOD__ );
return false;
}
....
}

A+

Seb


Permalien 03/07/2009 @ 12:11
Commentaire de: collation [Membre]
alors il faudrait un autre exemple... parce qu'on pouvait faire ça:


public function add_product(array $product_to_insert) {
....
}
Permalien 03/07/2009 @ 13:09
Commentaire de: metagoto [Membre] · http://blog.runpac.com
Ilia a posté un nouveau billet sur son blog annonçant un nouveau patch amélioré. J'adhère complètement.
Et si cela nous conduisait vers la surcharge de fonctions ? C'est un sujet délicat qui a toujours été rejeté. Sans un support pour le type hinting tel que celui proposé par Ilia, ça se comprend tout à fait. Mais à l'avenir ? Ca serait fantastique! Cette possibilité serait de loin celle qui me manque le plus.
Permalien 04/07/2009 @ 23:35

Vous devez être identifié pour poster un commentaire.

Liste des blogs

Julien Pauli DevPHP blog

Developpement web PHP

Rechercher

<  Février 2012  >
Lun Mar Mer Jeu Ven Sam Dim
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29        

Syndiquez ce blog XML

Articles :

Commentaires :

 
 
 
 
Partenaires

Hébergement Web