Derniers journaux de jeffcom :

Journal : Le concept d'objet en PHP

Posté par Jeff_ (Jabber id, ) le 05 janvier 2009
7
Cher journal,
on me demande parfois de résumer comment PHP utilise les objets et ce qu'il est possible de faire avec, et j'ai parfois du mal à être à la fois clair et exhaustif...

J'ai trouvé ça aujourd'hui :
http://www.unixgarden.com/index.php/web/le-nouveau-modele-ob(...)
et c'est clair et exhaustif... quoique la typo soit un peu bizarre...

L'article est très intéressant car il parle de :

* Classes, objets, héritage et polymorphisme
* Sérialisation et désérialisation
* nouveautés objets de PHP5 constructeurs et destructeurs
* Visibilité
* Statiques et constantes
* Classe abstraite et méthode abstraite
* Interfaces
* Itération
* Final
* Clonage et comparaison d'objets
* Exception
* Quand PHP rencontre Java

Cet article a par ailleurs été publié dans le hors série N°20 de Linux Magazine

> Lire le journal (27 commentaires, moyenne: 2,9).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Polymorphisme

Posté par ethtezahl () le 05/01/2009 à 15:56. (lien). Évalué à 1.

Euh, je ne suis pas expert, alors je me trompe peut être, mais je lis:

Le polymorphisme est le fait de pouvoir utiliser une même méthode sur des objets complètement différents et sans nécessairement connaître de quel type d’objet il s’agit.

Le principe du polymorphisme n'est pas au contraire de pouvoir écrire plusieurs méthodes portant le même nom dans une même classe, mais acceptant des paramètres différents?

  • [^]Re: Polymorphisme

    Posté par windu.2b (Jabber id, page perso, ) le 05/01/2009 à 16:05. (lien). Évalué à 10.

    Non, ça c'est la surcharge de méthodes.

  • [+] [^]Re: Polymorphisme

    Posté par mota (Jabber id, page perso, ) le 05/01/2009 à 16:06. (lien). Évalué à -1.

    A vrai dire, sa definition du polymorphisme est exacte, mais pas en PHP (ou java, c++ et toute la clique).

    En c++, cette definition porterait plutot le nom de programmation generique (via les templates), bien que le sous-typage permette aussi cette particularite, mais enleverait tout le benefice d'un code generique (puisque redefinition de la methode pour chaque type, ou alors gros bazar avec des (void *) mais bon, a eviter tant que possible).

    • [^]Re: Polymorphisme

      Posté par Feeks (Jabber id, page perso, ) le 05/01/2009 à 16:19. (lien). Évalué à 10.

      La définition est exacte, peu importe le langage...

      Le polymorphisme, dans sa définition la plus courante en tout cas, consiste simplement à spécialiser un type en sous-types, ce qui implique des caractéristiques communes entre les sous-types.

      Concrètement, cela permet d'appeler l'action "démarrer" sur toute une collection de voitures, peu importe que ce soit des 4x4, des monospaces ou des berlines. D'où la généricité du code produit par la suite.

      --
      Ouin ouin.
      • [^]Re: Polymorphisme

        Posté par benja () le 05/01/2009 à 16:45. (lien). Évalué à 1.

        N'est-ce pas aussi appelé polymorphisme ad-hoc ?

        • [^]Re: Polymorphisme

          Posté par Bastes () le 05/01/2009 à 16:55. (lien). Évalué à 6.

          Moi je l'appelle Poly, mais en même temps on est intimes...

        • [^]Re: Polymorphisme

          Posté par zul (Jabber id, page perso, ) le 05/01/2009 à 17:10. (lien). Évalué à 1.

          La définition de Feeks correspond bien à la définition du polymorphisme ad-hoc qu'on retrouve dans la majorité des langages. Il existe aussi le polymorphisme paramétrique qui consiste à écrire des méthodes sans se soucier du type des opérandes (ce qu'on appelle généricité en C++ par exemple). Quand à la définition de l'auteur original, elle n'est pas très claire :).

[+] Hum...

Posté par Slainer (Jabber id, page perso, ) le 05/01/2009 à 17:34. (lien). Évalué à -4.

PHP et objet dans une même phrase, et on est même pas vendredi quoi !!

  • [^]Re: Hum...

    Posté par François Nautré (Jabber id, ) le 05/01/2009 à 18:05. (lien). Évalué à 1.

    Parce qu'après lecture de l'article, si on était vendredi, qu'est-ce que tu reprocherais de précis et concret à PHP, en termes orienté objet ?

    • [^]Re: Hum...

      Posté par windu.2b (Jabber id, page perso, ) le 05/01/2009 à 18:10. (lien). Évalué à 6.

      * La non-gestion de la surcharge des méthodes et constructeurs (obligé de se farcir ça avec des "if / switch") ;
      * Le (très) faible typage des méthodes (seulement les types complexes sont acceptés, pas les types simples).
      * L'absence de typage pour le retour des méthodes.

      • [^]Re: Hum...

        Posté par François Nautré (Jabber id, ) le 05/01/2009 à 18:15. (lien). Évalué à 4.

        le typage des méthodes seulement pour les types complexes est effectivement une plaie.

      • [^]Re: Hum...

        Posté par astennu () le 05/01/2009 à 18:24. (lien). Évalué à 5.

        * l'impossibilité de spécifier quels types d'exception une méthode est susceptible d'envoyer

        j'adore la surprise du chef : "ha tiens, on peut se ramasser cette exception avec cette méthode?"

      • [+] [^]Re: Hum...

        Posté par Étienne Bersac (Jabber id, page perso, ) le 05/01/2009 à 19:04. (lien). Évalué à -1.

        Je ne vois pas le rapport avec l'objet. On peut avoir de la surcharge de fonction, le typage de fonction sans avoir d'objet.

        Étienne.

        --
        E Ultreïa !
        • [^]Re: Hum...

          Posté par windu.2b (Jabber id, page perso, ) le 05/01/2009 à 20:38. (lien). Évalué à 4.

          Je n'ai pas dit le contraire ! Mais en l'occurrence, je répondais au commentaire précédent, en citant des cas concrets qui m'ont bien souvent emmerdé, et qui concerne le modèle objet de PHP5.
          D'ailleurs, le fait que les possiblités que je cite n'existent pas dans le modèle objet sous-entendent aussi qu'elles n'existent pas plus dans le modèle procédural... Car les implémenter dans le second cas mais pas dans le premier serait fort surprenant !

    • [^]Re: Hum...

      Posté par skud () le 05/01/2009 à 21:04. (lien). Évalué à 1.

      La non levée d'exceptions par les librairies MySQL !
      Il faut encore se taper des tests sur le retour des fonctions, j'aime bien PHP mais là c'est la honte.

      • [^]Re: Hum...

        Posté par François Nautré (Jabber id, ) le 05/01/2009 à 23:56. (lien). Évalué à 2.

        ça c 'est vrai que j'ai du mal à comprendre... Certaines fonctions retournent false, d'autres lèvent des notices, d'autres des warnings...

        C'est vrai que si d'un coup MySQL se mettait à lever des E_STRICT à chaque erreur, de nombreux sites codés avec les pieds poseraient des problèmes de compatibilité...
        C'est ce qu'ils auraient dû faire dès le début.

        • [^]Re: MySQL & Exceptions

          Posté par Benjamin (Jabber id, page perso, ) le 06/01/2009 à 00:22. (lien). Évalué à 2.

          Je ne veux pas faire le rabat-joie, mais c'est justement à cela que sert la classe PDO de PHP, qui permet, non seulement de faire (dans la plupart des cas et si bien développé) une relative abstraction du sgbd sous-jacent, mais qui, Ô miracle, lève une exception en cas d'erreur :)

          Je préfère de loin cela à une modification de l'API de php qui rendrait incompatible 99% des applis un peu vieillottes ;)

          • [^]Re: MySQL & Exceptions

            Posté par totof2000 () le 06/01/2009 à 18:48. (lien). Évalué à 3.

            s/qui rendrait incompatible 99% des applis un peu vieillottes/obligerait les pisseurs de code PHP à développer correctement/

qq années de retard ...

Posté par Moun's (page perso, ) le 05/01/2009 à 19:02. (lien). Évalué à 6.

ce qui me chiffonne c'est que PHP4 n'est plus supporté depuis 1 an, PHP 5.0.0 est sorti il y a presque 5 ans ( juillet 2004 ), et PHP 6 pointe doucement son nez ...

Yet Another PHP5 Tutorial, pourquoi pas sur le web mais sortir ca en presse avec le mot "nouveauté" dans la table des matières décrédibilisera le magazine plus qu'autre chose.

cet article aurait été largement plus interessant si il comparait la couche objet de PHP6 ( dispo dans le CVS ) avec celle de la derniere release de PHP5.

  • [^]Re: qq années de retard ...

    Posté par Jeff_ (Jabber id, ) le 05/01/2009 à 20:12. (lien). Évalué à 2.

    totalement d'accord avec toi, sur tous les points, mais je pense que l'article avait été écrit plus tôt mais publié seulement aujourd'hui...

    Je pense aussi que pas mal de "novices" utilisent le "style" d'objets de php4 même en php5 car ils ne comprennent pas ce qu'est un objet et/ou que ça leur semble plus simple... donc avant de comparer le modèle php5 et avec celui de php6, encore faut-il avoir une vision claire du modèle php5... ce que permet cet article.

    Je pense enfin à ceux qui n'ont pas fait de php depuis php3/4 et qui sont restés avec l'idée reçue qu'on ne peux pas faire de programmation orientée objet de manière correcte en php.

    Voilà pourquoi j'ai signalé cet article dans ce journal... mais en effet, la formulation du titre n'est pas super...

    --
    “Commit du soir, espoir.
    Build du matin, chagrin.”
    • [^]Re: qq années de retard ...

      Posté par François Nautré (Jabber id, ) le 06/01/2009 à 00:00. (lien). Évalué à 3.

      Je pense aussi que pas mal de "novices" utilisent le "style" d'objets de php4 même en php5 car ils ne comprennent pas ce qu'est un objet et/ou que ça leur semble plus simple... donc avant de comparer le modèle php5 et avec celui de php6, encore faut-il avoir une vision claire du modèle php5... ce que permet cet article.

      Bon on n'est pas non plus sur Clubic :)
      Pour ma part en tous cas, la comparaison PHP5/PHP6 m'aurait intéressé.
      Mais sinon cet article est excellent.

      • [^]Re: qq années de retard ...

        Posté par Jeff_ (Jabber id, ) le 06/01/2009 à 00:55. (lien). Évalué à 4.

        Bon on n'est pas non plus sur Clubic :)

        Certes, m'enfin je ne compte plus celles et ceux qui tentent d'apprendre par eux mêmes (ou qui sont simplement intéressés) et qui ne comprennent pas grand chose à l'objet... (cf commentaires précédents sur les notions de polymorphisme)¹

        Comme quoi...









        ¹ et c'est normal de ne pas comprendre du premier coup, surtout si on apprend par soi même... rien de dédaigneux dans mes propos

        --
        “Commit du soir, espoir.
        Build du matin, chagrin.”

tu devrais demander à Frédéric Lefebvre

Posté par palm123 (page perso, ) le 05/01/2009 à 21:35. (lien). Évalué à 0.

de l'UMP

Il m'a expliqué le Web 2.0, je l'en remercie

http://www.nowhereelse.fr/frederic-lefebvre-web-2-0-14550/

--
"Je suis un geek !" François Fillon dans SVM

Bing-> Bing Is Not Google.
  • [^]place aux experts

    Posté par palm123 (page perso, ) le 06/01/2009 à 10:06. (lien). Évalué à 2.

    Selon le Canard Enchainé, Frédéric Lefebvre va remplacer Besson à l'économie numérique.

    Il a l'air de connaître aussi bien son sujet que le nouveau président de l'Arcep, qui a eu récemment des cours particuliers de télécomms, donnés bénévolement par Lombard, le PDG de France Telecom. Le pauvre vient de l'Ena et ce n'est pas son domaine.

    S'il est bien élevé, il fera un renvoi d'ascenseur, ou au moins, demandera son avis à Lombard avant de prendre une décision.

    --
    "Je suis un geek !" François Fillon dans SVM

    Bing-> Bing Is Not Google.
    • [^]Re: place aux experts

      Posté par Bastes () le 06/01/2009 à 11:08. (lien). Évalué à 3.

      Lefebvre c'est pas exactement le type que je considèrerai le mieux élevé question économie numérique. Pour rappel, c'est le monsieur qui défend avec beaucoup de finesse et de nuances un internet tout plein de libertés :
      http://www.marianne2.fr/Frederic-Lefebvre-violeurs,-drogues,(...)

      • [^]Re: place aux experts

        Posté par palm123 (page perso, ) le 08/01/2009 à 10:21. (lien). Évalué à 4.

        Lefebvre est aussi un travailleur acharné, il est élu du conseil régional d'Ile de France depuis 2004, et pour les deux dernières années, il a siégé 4 jours. Les comptes-rendus des mêmes séances ne font état d'aucune intervention de sa part. Mais il a bien touché ses 2300 Euros mensuels.

        Source: le dernier Canard

        --
        "Je suis un geek !" François Fillon dans SVM

        Bing-> Bing Is Not Google.
        • [^]Re: place aux experts

          Posté par Bastes () le 08/01/2009 à 20:34. (lien). Évalué à 2.

          Ah mais, mauvaise graine, on ne peut pas être à la fois star de l'internet presque bientôt ministre des nouvelles technologies de communication, parlementaire et maire voyons. Il faut choisir. Déjà, qu'il fasse l'effort de toucher les chèque, ça montre qu'il a du respect pour sa fonction, il se déplace pour ça j'imagine...

Revenir en haut de page