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

Discussion :

Php Procédural ou Objet ?

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Par défaut Php Procédural ou Objet ?
    Bonjour à tous.

    Il y a une question qui doit hanter tous les débutants en dev web

    J ai une assez bonne habitude de développer en procédural et je me pose la question de changer car j ai l'impression qu'il ya de moins en moins de sites pros en procédural.

    par exemple, j ai récupéré le contenu d' un site en objet, voilà ce que donne la page index.php

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    33
    34
    35
    <?php
    //print $HTTP_GET_VARS['author_id'];
     
    // don't cache
    //$cachetimeout=-1;
     
    // $Id: index.php,v 1.6 2004/10/14 18:04:14 joestewart Exp $
    require('config.php');
     
    // don't cache page
    $cachetimeout=-1;
     
    $pagetitle   = pslgetText($ary['module']);     // The name to be displayed in the header
    $xsiteobject = pslgetText($ary['module'] .' Page'); // This Defines The META Tag Object Type
     
    // Show login form if requested
    if(!empty($HTTP_GET_VARS['login'])) {
      $auth->login_if($HTTP_GET_VARS['login']);
    }
     
    //print_r($_PSL);
     
    $_PSL['metatags']['object'] = $xsiteobject;
     
    // Is the page specified? - if not use module index.php
    $modulefilename =  'index.php';
     
    // setup the block module   
    $content = include($_PSL['moduledir'] ."/". $_PSL['module']['Block'] ."/". $modulefilename);
     
    // show page
    echo $content;
     
    page_close();
    ?>

    et voilà l'index.php d'un site classique en procédural:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="fr-fr">
     
    <head>
     
      <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
      <title>Exemple d'un site dynamique</title>
      <meta name="Description" content="Exemple grâce au langage PHP et SQL." />
      <link href="style.css" rel="stylesheet" type="text/css"/>
     
    </head>
     
    <body>
     
    <div id="moncadre">
    <?php include('menu.php');?>
     
    <div class="cadrecentrale">
    <h1>Exemple d'un site dynamique</h1>
     <?php
    //On se connecte à la base de données
    include('connexion_bd.php');
     
    mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
    mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');
     
    //On selectionne les 5 dernières entrées
    $result1 = mysql_query("SELECT id,titre,description FROM CONTENU ORDER BY id ASC LIMIT 5");
     
    while($affiche = mysql_fetch_array($result1))
     {
      echo '<div class="cadre">  <h2><a title="'.$affiche['titre'].'" href="page.php?id='.$affiche['id'].'">'.$affiche  ['titre'].'</a></h2>  '.nl2br($affiche['description']).'  </div>';
     }
    // Fermeture de la connexion à la base de données
    ;
    ?>
     
     
    </div>
     
    <?php include('footer.php');?>
     
    </div>
     
    </body>
     
    </html>

    Dans le code 2, je vois le html, les css, etc

    mais que veut dire le premier? car je ne reconnais rien...

    merci de m'expliquer les différences et avantages s'il y en a ,ce qui peut, je pense aider beaucoup de gens.

    En un mot, ça vaut il le coup d' apprendre encore en 2011, le procédural?


    stephi

  2. #2
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Bien évidemment... Faut pas croire que la POO c'est la réponse à tout.
    Il est des fois bien maladroit de développer une application en POO alors que ce serait plus facilement maintenable en procédurable (et plus compréhensible).
    Faut savoir ce qu'il faut vraiment, si on a besoin de beaucoup de modularité ou non (bien que des fois les solutions POO et procédurales se valent tout aussi bien).

    Après on peut très bien scinder correctement l'affichage du traitement et ce même en procédural, le pattern MVC n'est pas seulement applicable en POO.

    N.B : ton premier site ne laisse pas à penser que c'est un site développé en POO.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Chef d'entreprise
    Inscrit en
    Novembre 2010
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef d'entreprise
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 94
    Par défaut
    Bonjour,

    Faire de l'objet pour faire de l'objet est une bien mauvaise idée. Par contre, l'utilisation de Framework facilite la tâche de développement et de maintenance du code et ces derniers sont en général en objet.

    En PHP, je ne connais pas vraiment les frameworks mais CakePHP et Symfony ont l'air populaire. (même si populaire ne veut pas dire efficace)

    Cordialement,
    Thomas Feron

  4. #4
    Membre extrêmement actif
    Avatar de kdmbella
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2010
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 799
    Par défaut
    je pense qu'il faut comprendre c'est quoi la POO? c'est quoi ses avantages et c'est quoi ses inconvénients? Maintenant pour ce qui est des framework il sont en général OO donc pour les comprendre il faut comprendre la POO.
    je pense également qu'il faut prendre en compte le nombre de personnes qui participe au projet, la taille du projet lui même et plein d'autre paramètre en faveur ou en défaveur de la POO.

    Maintenant si tu cherche du travail ou si tu lis les offres d'enplois pour dev PHP, on exige souvent de connaitre la POO avec PHP 5.
    "L'humanité se divise en trois catégories : ceux qui ne peuvent pas bouger, ceux qui peuvent bouger, et ceux qui bougent."
    - Benjamin Franklin

    De l'aide en Javascript , consultez la FAQ JS.

    De l'aide sur le FrameWork JS DHTMLX : posez vos questions sur le forum des Bibliothèques & Frameworks JS.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Par défaut
    Ok merci à tous

    je vais essayer d'avancer sur la POO car je pense que malgré tout c est l'avenir.
    mais c est pas évident d'avoir des exemples concrets sur la POO.

    J ai déjà fait des recherches et ce sont plus des concepts que des cas concrets.

    Bonne continuation

    stephi

  6. #6
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    Citation Envoyé par Stéph utilisateur d'acces Voir le message
    Ok merci à tous

    je vais essayer d'avancer sur la POO car je pense que malgré tout c est l'avenir.
    mais c est pas évident d'avoir des exemples concrets sur la POO.

    J ai déjà fait des recherches et ce sont plus des concepts que des cas concrets.

    Bonne continuation

    stephi
    hum, pour moi la POO n'est pas "l'avenir" mais en fait partie tout comme cela fait partie du présent mais aussi du passé. la POO php ne date pas d'hier ou d'une semaine cela fait déjà quelques années que cela existe. l'expansion de cette dernière et comme l'indique les précédents participants à cette discussion la nature des projet, le nombre de participant, l'importance ainsi que la nature de ce dernier.

    pour ce qui est des exemples il est certes difficile d'en donner de manière brut mais disons que sont utilité est principalement dans la réutilisation d'élément. le plus commun à mon sens serait la connexion à une base de données. elle est présente dans beaucoup de script et prend principalement toujours les même paramètre donc une classe de connexion serait un bonne exemple je pense de réutilisation et d'implémentation.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

Discussions similaires

  1. PHP et XAJAX objet - variables de fonctions
    Par Giantrick dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 18/06/2008, 13h02
  2. [POO] PHP 5, transmettre objet dans la session
    Par FCDB dans le forum Langage
    Réponses: 2
    Dernier message: 23/05/2006, 14h26
  3. [POO] PHP et Programmation objet
    Par debianben dans le forum Langage
    Réponses: 5
    Dernier message: 13/02/2006, 11h43
  4. Différence, exemple procédural, événementiel, objet ?
    Par ludophil dans le forum Débuter
    Réponses: 3
    Dernier message: 26/10/2005, 08h35

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