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 :

Comment coder correctement ?

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Points : 30
    Points
    30
    Par défaut Comment coder correctement ?
    Bonjour,

    Je suis actuellement entrain de creer un site web (HTML/CSS/PHP) et je viens souvent sur super forum pour trouver des infos afin de resoudre mes problemes et comme j'ai souvent eu de bon retour, je voudrais avoir quelques conseil sde 'bonnes pratiques' pour coder correctement c'est a dire en respectant un certain standard utilise.

    Je n'ai jamais suivi de formation donc j'ai essaye d'apprendre en suivant différent tuto sur le net du coup mes pages font ce qu'elles doivent faire mais je pense que c'est loin d'etre propre.

    Voici par exemple le code de ma page index.php. Pouvez vous me donner votre avis sur mon code

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <!DOCTYPE html>
    <html>
        <head>
    	<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" > 
            <link rel="stylesheet" href="style.css" />
            <title>Mon site</title>
        </head>
        <body>
            <div id="bloc_page">
                <header>
    		<?php include ("titre_principal.php");?>
                    <?php include ("menu.php");?>
                </header>
    		<?php include ("baniere.php");?>
    		<?php include ("authentifie.php");?>
    		<?php include ("recherche_simple.php");?>
     
                <section>
                    <article>
                        <h1><img src="images/ico_epingle.png" alt="" class="ico_categorie" />Acceuil</h1>
                        <p>Ce site est mon site</p>
    		<div class="titre_rouge">
    			</br>Au hasard
    		</div>
    		<?php
    		try
    		{
    			$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    			$bdd = new PDO('mysql:host=localhost;dbname=mon_projet', 'root', '', $pdo_options);
    			$bdd->query("SET NAMES 'utf8'");
    			$reponse = $bdd->query('SELECT * FROM film WHERE id >= RAND() * (SELECT MAX(id) FROM film) LIMIT 4');
    			while ($donnees = $reponse->fetch())
    			{
    				echo '<strong><a href="fiche_film_generic.php?id='.$donnees['id'].'">'.$donnees['titre_original'].'</a></strong> <a href="fiche_film_generic.php?id='.$donnees['id'].'"> ('.$donnees['titre_francais'].')</a><br />';
    			}
    		}
    		catch (Exception $e)
    		{
    			die('Erreur : ' . $e->getMessage());
    		}
    	?>
          </article>
       </section>
        <?php include ("footer.php");?>
     
    </div>
    </body>
    </html>

    Merci

  2. #2
    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 : 43
    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
    Points : 7 503
    Points
    7 503
    Par défaut
    sans connaitre le contenu des include on peut supposer que cela à l'air normal et propre. le seul reproche que je ferais serait dans l'utilisation du php.

    l'ouverture et fermeture intempestive peut avoir des conséquences en terme de ralentissement ou gestion serveur.

    j'aurais tendance à tous passer en php.
    à toi de voir.
    la vie n'est pas cirrhose des foies ...

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

  3. #3
    Membre habitué Avatar de Baldy
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 223
    Points : 128
    Points
    128
    Par défaut
    Tu n'utilises pas les commentaires pour agrémenter ton code? C'est toujours très apprécié si jamais tu partages ton code avec d'autres ou qu'il est repris par quelqu'un derrière toi.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    J'ajouterais aussi la possibilité de faire tes requêtes SQL dans des fonctions ou des classes (je sais pas si tu bosses en php 4 ou 5) afin de séparer l'affichage des données du traitement.

    Après en effet, sur ces quelques lignes, c'est correct
    Règle N° 1 : Si tout va bien, ne touchez à rien.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    Merci pour vos reponses.
    @bob633: Je suis en PHP5 enfin je ne connais pas trop les difference entrela version 4 et 5. Lorsque tu dis "requêtes SQL dans des fonctions ou des classes" que veux tu dire exactement ? Creer un fichier fonctions.php par exemple et ajouter dans ce fichier les lignes qui permettent de faire la connexion a la base et/ou les requetes ?

    Aurais tu un exemple simple a me donner ?

    Merci

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    Je ne suis pas développeur web mais on m'a dit qu'il était toujours bien de séparer le traitement (affichages, requêtes, ...).

    Oui PDO est PHP5 mais tu peux utiliser des classes pour avoir la notion d'objet dans ton programme.

    Au lieu d'avoir ta connexion BDD dans ton code actuel. Tu pourrais créer un fichier classConnexion.php par exemple dans lequel tu aurais ta méthode de connexion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Connexion
    {
         private $connexion;
        
         function __construct()
        {
              // Ton code PDO de connexion
              return $this->connexion;
        }
    
    }
    Ensuite une classFilm.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    class films
    {
         private $ListeFilm = array();
       
         function __construct()
         {
         } 
      
        function Afficherfilm($connexion)
        {
           // Ton code select
           return $this->ListeFilm ; // Tableau de tout tes films
        }
    
    }
    Dans ta page principal :
    Code : 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
    <?php
      include_once('classConnexion.php');
      include_once('classFilms.php');
    ?>
    <!DOCTYPE html>
    <html>
        <head>
    	<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" > 
            <link rel="stylesheet" href="style.css" />
            <title>Mon site</title>
        </head>
        <body>
            <div id="bloc_page">
                <header>
    		<?php include ("titre_principal.php");?>
                    <?php include ("menu.php");?>
                </header>
    		<?php include ("baniere.php");?>
    		<?php include ("authentifie.php");?>
    		<?php include ("recherche_simple.php");?>
     
                <section>
                    <article>
                        <h1><img src="images/ico_epingle.png" alt="" class="ico_categorie" />Acceuil</h1>
                        <p>Ce site est mon site</p>
    		<div class="titre_rouge">
    			</br>Au hasard
    		</div>
    		<?php
    $connexion = new Connexion(); // constructeur de connexion	
    $Films = new Films(); // Constructeur de films
                    $tableauListeFilms = $Films->Afficherfilm($connexion); // Tu appelles ta méthode Afficherfilm, avec en paramètre la connexion BDD
            for($i=0;$i<count($tableauListeFilms);$i++)
            {
                  echo $tableauListeFilms[$i]; // Afficher chaque ligne du tableau films
            } 
    	?>
          </article>
       </section>
        <?php include ("footer.php");?>
     
    </div>
    </body>
    </html>
    Voilà des classes simples, après tu peux regarder des cours PHP objet sur google ou même sur les tutos developpez.

    J'ai écris le code rapidement mais dans l'idée c'est ca. Sur ta page php principale, tu déclares juste et appels juste tes méthodes de classes.

    edit : j'ai modifié un peu mon code, c'était pas jolie
    Règle N° 1 : Si tout va bien, ne touchez à rien.

  7. #7
    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 : 43
    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
    Points : 7 503
    Points
    7 503
    Par défaut
    la principale différence réside dans la notion de classe. ce qu'il t'es indiqué est donc d'utiliser cette notion pour éviter la redondance dans ton code.

    http://stephaneey.developpez.com/tut...p5_nouveautes/

    donc là il ne s 'agirait pas de générer une simple page avec des fonction. mais une classe de connexion réutilisable.
    la vie n'est pas cirrhose des foies ...

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

  8. #8
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    Ok merci beaucoup pour tout ces conseils je vais essayer de les appliquer au mieux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment utiliser correctement le debugger de DevCPP
    Par Le Furet dans le forum Dev-C++
    Réponses: 2
    Dernier message: 29/09/2005, 09h56
  2. [matrice spéciale] comment coder ce genre de matrices?!
    Par wjean dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 09/05/2005, 09h50
  3. Comment coder un effet de neige ?
    Par the_magik_mushroom dans le forum Langage
    Réponses: 11
    Dernier message: 17/12/2004, 23h29
  4. Comment coder une tabulation pour cut ?
    Par ggnore dans le forum Linux
    Réponses: 2
    Dernier message: 26/11/2004, 10h31
  5. Comment coder guillemets et cotes ?
    Par Vow dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 14/05/2003, 12h11

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