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] Classe News


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
    Janvier 2008
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 788
    Par défaut [POO] Classe News
    Bonjour je débute en oo et j'ai fais le début d'une classe news.
    Mais vous pouvez me dire ce qui ne va pas svp

    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
     
    <?php
    class News {
    		private $_titre;
    		private $_auteur;
    		private $_contenu;
    		private $_date;
    	public function __construct($id) {
    		if($id != NULL) {
    			$QS_news = mysql_query("SELECT * FROM news WHERE id='".$id."'")or exit(mysql_error());
    			$D_news = mysql_fetch_assoc($QS_news);
    			$this->_titre = $D_news['titre'];
    			$this->_auteur = $D_news['auteur'];
    			$this->_contenu = $D_news['contenu'];
    			$this->_date = $D_news['date'];
    		}
    	}
    }
    class NewsManager {
    	public function getAllNews() {
    		$news = array();
    		$QS_all_news = mysql_query("SELECT id FROM news ORDER BY id DESC");
    		while($D_news = mysql_fetch_assoc($QS_all_news)) {
    			$news[] = new News($D_news['id']);
    		}
    	}
    }
     
     
    ?>
    Voilà étant donner que je suis noob merci de ne pas me dire qu'il y a plein de truc qui ne vont pas.
    Mais je préfère que vous me dîtes un seul défaut et que vous l'expliquiez correctement.

    MERCI

  2. #2
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    La première remarque que je ferais est de faire un fichier pour chaque déclaration de classe, le nom du fichier étant le même que celui de la classe.
    Cela te simplifiera grandement la maintenance.

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Je rajouterais :
    1- Tu fait une requete pour récupérer toutes les ID de tes news , mais ensuite tu instancie ta classe news qui récupère les infos d'une news.
    Donc tu fait 2x la même chose.

    Pourquoi ne pas modifier ton instanciation de news pour lui passer dirrectement tous les paramètres voulu ?
    Dans ton cas si tu as 200 news à afficher tu fais 201 requetes au lieu d'une seule :/

    2- Ton news manager n'as pas de constructeur donc ta méthode getAllNews pourrait (devrait ?) devenir static
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("SELECT * FROM news WHERE id='".$id."'")
    Ne fais jamais ça si tu ne contrôles pas le contenu de $id car il y a des possibilités d'injection SQL (même si mysql_query n'exécute qu'une seule requête) : c'est une très mauvaise habitude

    Sinon, hormis le fait que je ne vois pas à quoi sert cette fonction (je suppose que tu ne l'as pas terminée), tu peux la déclarer "static" si elle l'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function getAllNews() {
    		$news = array();
    		$QS_all_news = mysql_query("SELECT id FROM news ORDER BY id DESC");
    		while($D_news = mysql_fetch_assoc($QS_all_news)) {
    			$news[] = new News($D_news['id']);
    		}
    	}

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 788
    Par défaut re re re
    Ok merci !!
    Sinon j'ai une question subsidiaire.
    Imaginons que j'ai un site complet donc supposé avec pas mal de classe.
    Est-ce que c'est utile de créer une classe
    InputUser
    avec comme méthode vérifier tout ce que rentre l'utilisateur!

    Merci

  6. #6
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par saturn1 Voir le message
    Ok merci !!
    Sinon j'ai une question subsidiaire.
    Imaginons que j'ai un site complet donc supposé avec pas mal de classe.
    Est-ce que c'est utile de créer une classe
    InputUser
    avec comme méthode vérifier tout ce que rentre l'utilisateur!

    Merci
    Il faut toujours vérifier les entrées utilisateur, et un bon programmeur fait du code réutilisable.

    Après, en classe, en fonction ou autre, c'est un choix personnel. Si ton site est tout objet, c'est une bonne idée.

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

Discussions similaires

  1. [POO] Classe en PHP5
    Par neptune dans le forum Langage
    Réponses: 5
    Dernier message: 01/09/2005, 18h55
  2. [POO]Classes abstract
    Par smag dans le forum Langage
    Réponses: 5
    Dernier message: 30/06/2005, 00h05
  3. [Language][POO]classe interface
    Par Samanta dans le forum Langage
    Réponses: 9
    Dernier message: 21/06/2005, 16h32
  4. Réponses: 3
    Dernier message: 19/05/2005, 11h46
  5. [POO] Class Défilementa automatique d'images avec animation
    Par rakoto.n dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 14/01/2005, 19h21

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