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 :

Passer du procédural à l'OO


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Par défaut Passer du procédural à l'OO
    Bonjour tout le monde,

    Cela fait une dizaine d'années que je développe des sites web en PHP. Je développe tout à partir d'une page blanche. Le seul "problème" je n'ai appris que PHP procédural en utilisant au départ des livres très didactiques du type "pour les nuls" etc avant de progresser....
    Je souhaiterais me mettre à la programmation objet et apprendre à utiliser un Framework.

    - Quels livres pouvez-vous me conseiller pour passer en douceur du procédural à l'objet (que je n'ai jamais ni utilisé ni vraiment compris) ?
    - En me consacrant en moyenne 3 à 4 heures/jour à ce nouvel apprentissage combien de temps faut-il en moyenne pour commencer à se débrouiller seul puis bien maîtriser.

    Merci pour vos conseils.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    Je ne pense pas que cela soit la meilleure approche que de te frotter à la POO en attaquant d'emblée un framework.
    Tu vas cumuler deux gros problèmes : l'abstraction fournie par la POO et la complexité du framework qui considère à tous les coups que les concepts relatifs à la POO sont assimilés et surtout déjà bien maîtrisés.
    Le framework va t'apporter une architecture entièrement bâtie sur les concepts de la POO. Si tu ne les connais pas plus que ça, tu vas passer un temps astronomique pour réaliser des broutilles.

    Commence par le début, un bon livre sur la pensée orientée objet, ensuite transpose les exemples que tu vas y trouver dans le monde Web : exemple voiture/roue/gps vers page/formulaire/routeur... et redessine les schémas. Le meilleur ami dans ton cas, c'est le papier et le crayon. Le but c'est que tu accroches d'entrée de jeu, si cela ne te parle pas, tu vas rapidement jeter l'éponge comme 15% des développeurs réfractaires aux concepts de la POO. Je pense que ce pourcentage a dû baisser depuis dans la mesure où cela est enseigné dans les écoles.

    Pour le délai, pas de réponse, c'est très personnel. Cela va dépendre de tes facilités et surtout de l'intérêt que ces concepts vont soulever en toi.
    Bon courage et si tu commences à tout voir ou diviser en objets, c'est qu'il est grand temps de faire une pause.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Même conseil, oublie les framework pour l'instant. La POO étant un paradigme indépendant de tout langage, je te conseille de lire Penser en Java de Bruce Eckel. Ce livre est obsolète en relation avec Java, qui a considérablement évolué depuis, mais est une excellente introduction à la POO.

    Sautes toutes les parties relatives à Java, aux structures du langage, aux opérateurs, etc... Lis uniquement les parties liées aux objets: III-Introduction aux objets (A à F), VIII-Réutiliser les classes (composition, héritage), IX- Polymorphisme, X-A-Interfaces.

    Tous les cas abordé ne correspondent pas forcément à PHP, mais le modèle objet de PHP (ainsi que certains framework comme Symfony) sont largement inspirés par Java.

    Si tu lis l'anglais, j'aurais plus de ressources pour toi.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Par défaut
    Merci beaucoup de vos conseils, c'est bien noté pour les Frameworks je les étudierais plus tard.

    Le livre de Java que tu me conseilles j'avais à l'époque étudié Java mais je n'aimais pas des masses, je préfère php procédural mais bon... J'ai beaucoup utilisé les livres de la Collection Noire d'Eyrolles pour apprendre PHP et les autres langages je les ai trouvé relativement didactiques, les livres de Hugues Bersini ou Claude Delannoy "s'initier à la programmation objet" vous en pensez-quoi ?
    L'objet est-il vraiment beaucoup beaucoup utilisé ? Dans les livres que j'ai et même ma reference "PHP5 avancé" de Daspect et de De Geyer je vois à l'intérieur plus d'exemples en procédural qu'en objet...

    Merci pour vos réponses

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Citation Envoyé par popy67 Voir le message
    Merci beaucoup de vos conseils, c'est bien noté pour les Frameworks je les étudierais plus tard.

    L'objet est-il vraiment beaucoup beaucoup utilisé ? Dans les livres que j'ai et même ma reference "PHP5 avancé" de Daspect et de De Geyer je vois à l'intérieur plus d'exemples en procédural qu'en objet...
    Aujourd'hui, tu peux très bien faire des sites et ne pas faires de la POO. PHP est un langage extrêmement flexible qui te permet de faire à peu près tout ce que tu veux.

    Il faut faire la différence entre utiliser des objets dans un code procédural, ce qui est pratiquement inévitable, et faire des sites/applications en vrai POO. Tu peux même utiliser des micro-framework comme Silex ou Lumen tout en écrivant ton propre code en procédural.

    Ceci dit, ce n'est pas une raison pour ne pas en faire, on peut très bien faire des sites en pur HTML/CSS/Javascript aussi, sans PHP.

    La POO permet de savoir comment mieux organiser ton code, faire en sorte qu'il soit réutilisable, flexible, adaptable, plus facile à lire (ce qui est extrêmement important pour des projets nécessitant une maintenance ou mises à jour à moyen et long terme), de mieux séparer le code pour pouvoir changer facilement et séparément le HTML, le CSS ou le code PHP sans devoir se dépatouiller dans un code spaghetti qui fait des centaines de lignes. Et puis surtout, est-ce qu'il t'es déjà arrivé de modifier une ligne, et de voir que cette modification a entraîné toute une cascade de bugs? La (bonne) POO (bien organisée) te permet d'éviter ça.

    Bref, tout dépend de ce que tu veux faire, des genres de sites que tu veux réaliser.

    Le problème que je vois chez beaucoup de réfractaires est qu'il y a un seuil à franchir entre l'apprentissage de la POO (et ses exemples basiques comme "Cat extends Felin implements Animal") et le code organisé, réutilisable, fexible etc.. comme décrit ci-dessus. Et franchir ce seuil prends du temps, il demande la maîtrise de la POO, mais également de notions d'architecture (SOLID), de design patterns etc... Et parfois, ce temps et cet effort ne valent pas la peine: si tu fais des sites relativement simples, par exemple.

    C'est peut-être pour ça que ton livre met moins l'accent sur la POO: en procédural, la récompense est immédiate: tu peux faire du concret très vite. En POO, la récompense est plus forte, mais prends du temps.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Par défaut
    Citation Envoyé par Tsilefy Voir le message
    Ceci dit, ce n'est pas une raison pour ne pas en faire, on peut très bien faire des sites en pur HTML/CSS/Javascript aussi, sans PHP.

    Et puis surtout, est-ce qu'il t'es déjà arrivé de modifier une ligne, et de voir que cette modification a entraîné toute une cascade de bugs? La (bonne) POO (bien organisée) te permet d'éviter ça.

    Et parfois, ce temps et cet effort ne valent pas la peine: si tu fais des sites relativement simples, par exemple.
    Merci pour ta réponse.
    On peut faire un site sans PHP mais bon mis à part pour un site vitrine à la rigueur je voudrais pas en faire sans php...

    Sinon à titre perso je n'ai jamais eu de cascade de bugs mais je ne doute pas 1 seconde que ca doit être courant en procédural...

    Pour les sites, je réalise des boutiques en ligne, des blogs, sites communautaires, tout ce qu'on me demande.... A titre perso j'ai par exemple fait celui qui est sur ma signature et encore celui-ci tous en procédural, les passer en PHP OO ça serait un plus et permettrait de réutiliser du code etc c'est ça ?

Discussions similaires

  1. passer une procédure sur le clique d'un popup menu
    Par sebyo dans le forum Débuter
    Réponses: 3
    Dernier message: 15/05/2009, 11h49
  2. Passer une procédure en paramètres
    Par FamiDoo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 17/02/2008, 14h41
  3. Passer des procédures stockées à Hibernate
    Par zizoux5 dans le forum Hibernate
    Réponses: 2
    Dernier message: 11/04/2007, 13h08
  4. Comment passer une procédure en paramètre ?
    Par gudul dans le forum Langage
    Réponses: 4
    Dernier message: 30/09/2005, 13h57
  5. Passer une procédure en paramètre ?
    Par Cornell dans le forum Langage
    Réponses: 2
    Dernier message: 24/10/2003, 12h21

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