IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] Avantages de la programmation orientée objet en PHP 5 [Débat]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut [POO] Avantages de la programmation orientée objet en PHP 5
    Pour php 5 je suis pas super avancé donc si je peux avoir un lien vers un exemple de clase statique ca m'aiderait

    Sinon j'ai pas vu dans la doc les jours férié....


    [Edit] Cette discussion a été déclenchée par : http://www.developpez.net/forums/sho...d.php?t=368192

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Par défaut
    Commençant à developper l'objet (en PHP), je me posai une question, certe stupide, mais impossible à me répondre seul.

    J'ai découvert l'objet, et me suis dit " C'est pareil qu'un fonction en faite !".

    Prenons le code précedent en objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    abstract class Calendar
    {
       public static function frenchDate($date)
       {
             $temp = explode("-",$date);
             $res = $temp[2]."/".$temp[1]."/".$temp[0];
             return($res);
       }
    }
     
    echo Calendar::frenchDate($date);
    et voici en fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fonction Calendar($date)
    {
     
             $temp = explode("-",$date);
             $res = $temp[2]."/".$temp[1]."/".$temp[0];
             return($res);
    }
     
     
    echo Calendar($date);
    Alors pourquoi l'objet est il si puissant?
    (je sais j'en suis qu'au début, il doit avoir d'autre possibilité mais la question m'a traversé l'esprit, je déprime, je dors plus )

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut
    Alors principal raison qui pour moi m'a fait passer a l'objet avec de gros projet c'est celle ci (cité plus haut)
    On pourrait faire de même en procédural, mais l'avantage de ces classes est d'avoir des noms de méthodes simples. Voir un img::exists() et un file::exists() me parait beaucoup plus clair et propre qu'un imgExists() et un fileExists(). On voit tout de suite dans le source de quelle librairie vient la méthode. On sait que url::str2url() vient de la librairie "url", alors qu'on ne sait pas forcément si str2url() vient de la librairie "url" ou de la librairie "str". Et c'est encore plus évident avec les noms de méthodes plus complexes.
    En gros tu sais dans quel fichier est ta fonction.

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    oui et non. La tu te penches sur un point précis de l'objet que sont les classes statiques, qui permettent donc de regrouper un ensemble de fonctions dans une classe donnée pour mieux les trier/classer/organiser/distribuer etc.

    Mais ca reste une petite partie de l'objet tout de meme, a coté de l'héritage, des surcharge, des variables privées/protégées/publiques etc.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Par défaut
    OK

    Les fonctions sont bien structuré mais dans un fichier quelconque.
    Alors que les classes sont bien structuré aussi, et bien rangé dans le fichier approorié (en gros)

    J'ai bien compris professeur?

  6. #6
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 509
    Par défaut
    Citation Envoyé par afrodje Voir le message
    Commençant à developper l'objet (en PHP), je me posai une question, certe stupide, mais impossible à me répondre seul.

    J'ai découvert l'objet, et me suis dit " C'est pareil qu'un fonction en faite !".

    Prenons le code précedent en objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    abstract class Calendar
    {
       public static function frenchDate($date)
       {
             $temp = explode("-",$date);
             $res = $temp[2]."/".$temp[1]."/".$temp[0];
             return($res);
       }
    }
     
    echo Calendar::frenchDate($date);
    et voici en fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fonction Calendar($date)
    {
     
             $temp = explode("-",$date);
             $res = $temp[2]."/".$temp[1]."/".$temp[0];
             return($res);
    }
     
     
    echo Calendar($date);
    Alors pourquoi l'objet est il si puissant?
    (je sais j'en suis qu'au début, il doit avoir d'autre possibilité mais la question m'a traversé l'esprit, je déprime, je dors plus )
    Calendar peut faire partie d'un groupe de fonctionnalité traitant des dates. Si tu n'utilises que ça pour traiter des dates alors il y a pas lieu d'utiliser une classe.
    T'es toi même un objet et ta mère ta instancier à ta naissance ! Tu es un ensemble de fonctionnalité .
    Retourne le problème dans l'autre sens. La notion objet est née de ce qui existe autour de nous.
    Comme je l'ai déjà dit : L'objet est une vue d'esprit qui s'applique à la programmation.

  7. #7
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut
    Une application web "objet" nécessite d'étre intégralement conçue avant d'être écrite, c'est encore plus vrai que dans le cas d'un langage procédural.
    D'expérience, c'est plus qu'un bon conseil.

    Pour passer du coq à l'âne, les grands avantages que je trouve à la POO appliquée à un site Internet, sont :
    - la clarté du code,
    - la sécurité,
    - la centralisation des fonctions,
    - la possibilité de modifier facilement (ajout suppression) les fonctionnalités,
    - la maintenance ainsi plus aisée...

    En fait j'en trouve plein....
    Plus je développe et plus je trouve la POO intéressante et adaptée.

    Comme le Bersecker United, il faut avoir le nez dedans...

  8. #8
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    Les avantages de la POO sont les mêmes que se soit en PHP ou en Java donc cette discussion n'apporte peut-être pas grand chose pour la POO en générale.
    Est ce que je me trompe ?

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut
    Citation Envoyé par mathieu Voir le message
    Les avantages de la POO sont les mêmes que se soit en PHP ou en Java donc cette discussion n'apporte peut-être pas grand chose pour la POO en générale.
    Est ce que je me trompe ?

    Effectivement la base etant php5 POO Vs php4

  10. #10
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut
    Citation Envoyé par mathieu Voir le message
    Les avantages de la POO sont les mêmes que se soit en PHP ou en Java donc cette discussion n'apporte peut-être pas grand chose pour la POO en générale.
    Est ce que je me trompe ?
    Non, tu as raison

    Pour recentrer : les avantages en PHP5 les plus notables à mes yeux :
    - la copie et la référence (PHP5 fait par défaut un passage par référence d'un objet alors que PHP4 en faisait une copie)
    - le déréférencement des méthodes (on n'est plus obligé de sauvegarder le résultat d'une méthode dans une variable lorsqu'elle renvoie un objet)

    C'est ce que je trouve le plus pratique dans l'utilisation que j'en fais...

  11. #11
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Par défaut poo comment gérer?
    j'ai une réalision à faire en php, l'application concerne le suivi de la gestion de scolarité d'un département d'informatique pour un mémoire de fin d'études, le problème c'est je j'apprend php ok mais je ne sais pas quoii faire pour la poo, car jai plus travaillé avec delphi,
    quelqu'un peut il m'expliquer le principe du passage du modèle physique de données en php.

  12. #12
    Membre confirmé
    Homme Profil pro
    Chef opération transport urbain
    Inscrit en
    Avril 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Chef opération transport urbain
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2008
    Messages : 92
    Par défaut
    Bonjour à tous,

    je ne voulais pas partir un nouveau sujet sur la chose, alors je poste ici.

    Je fais de la programmation depuis que je suis tout petit. Dès l'âge de 6-7 ans (j'en ai 31 maintenant) que je "sais" programmer. J'ai commencé avec le langage QWBasic. J'ai programmé en Basic jusqu'à mes études collégiales (pré-universitaire au Québec). Ensuite j'ai étudié le langage C, VisualBasic et Progress mais tous en procédural.

    Je ne suis jamais devenu programmeur par choix, mais j'en fais quand même ma passion et il y a 5 ans environ, j'ai acheté le livre «PHP et MySQL pour les nuls» version 2003. Encore là, j'ai appris à programmer en PHP de façon procédural.

    Tout ça pour vous dire que le procédural est profondément ancré en moi. Je n'ai fais que ça et quand je tombe sur du OO, je comprends difficilement. J'aimerais faire un reset de mon cerveau et commencer à programmer en OO. J'aimerais trouvé un livre ou un ouvrage qui me montrerait la POO en php. C'est que je souhaite programmer dans ce langage alors autant sauver une étape. J'ai cherché sur le site de Developpez et ce que j'ai trouvé m'obligeait à connaître les fondements de la POO, ce que je n'ai pas.

    J'aimerais que vous me fassiez part de vos lectures.

    Voici ce que j'ai déjà fait : http://www.cxpool.com et mon défi est de le refaire en POO.

    Merci
    TigerCX

Discussions similaires

  1. [PHP 5.0] La programmation orientée objet en PHP
    Par RideKick dans le forum Langage
    Réponses: 12
    Dernier message: 28/06/2011, 17h01
  2. [MySQL] Programmation orienté objet en php 5
    Par dhbmedanis dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/05/2011, 10h06
  3. Programmation orientée objet en PHP
    Par dekalima dans le forum Langage
    Réponses: 2
    Dernier message: 28/03/2011, 12h45
  4. Réponses: 26
    Dernier message: 12/10/2010, 06h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo