Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Découverte POO [ POO / Classes & Objets ] (kyript)

dimanche 27 mai 2007 à 13:22:15 | Découverte POO

kyript

Membre Club

Bonjour à tous

je post ici afin que vous donniez un avis sur la méthode utiliser...

Je tente d'afficher des news sur mon site, j'ai donc les pages suivantes:


- news.php // affichage des news
- news.class.php // définit les requetes pour les news


dans news.php:
// $conn est l'instance creér pour acceder à la bdd


<?php
include('./news/news_class.php5');
$news = [ Lien ]);
?>

<div class='TitreMenuGeneral'>
        <strong>Actualités</strong>
</div>

<div>
    <div id="ContenuNews">
        <?php echo $news['dateNews']; ?> -- <?php echo $news['sujetNews']; ?>
        <br />
        <br />
        <?php echo $news['messageNews']; ?>
    </div>
</div>



dans news_class.php5'


<?php
class News {

 private function __Construct() {
 }
 
 public static function selectAllNews($conn) {
  $req = "SELECT * FROM news_liste";
  $query = $conn->select($req);
  $fetchassoc = $conn->fetchassoc($query);
  return $fetchassoc;
 }
 
 private function __Destruct() {

 }

};
?>



Je passe donc l'instance de ma class bdd en paramètre à la méthode selectAllNews
est-ce la bonne technique à utiliser ?

je me pose cette question parce que je vais devoir implementer un do { } while() pour l'affichage des news et je sait pas trop comment mi prendre
merci pour votre aide


dimanche 27 mai 2007 à 16:43:45 | Re : Découverte POO

neigedhiver

Réponse acceptée !
Salut, Si ta classe n'a qu'une méthode et pas de propriété, alors elle est inutile : autant utiliser une simple fonction. Passer "la connexion" (s'agit-il d'un objet ?) en paramètre de ta méthode ne me parait pas non plus idéal. Ce qui me semblerait plus malin, c'est d'assigner l'instance de ta connexion bdd à une propriété de ta classe news. protected $_db; public function __construct() { $news -> _db = DB::getInstance(); } public function selectAllNews() { $sql = "SELECT * FROM news_liste"; $result = $this -> db -> query($sql); return $this -> $db -> fetch_assoc($result); } Pour cela, il faut que ta classe DB se comporte comme un singleton, et que la méthode statique getInstance retourne l'objet courant, sans l'instancier à nouveau. Tu trouveras des sources en exemple ici.

dimanche 27 mai 2007 à 17:02:21 | Re : Découverte POO

coucou747

Salut


"Si ta classe n'a qu'une méthode et pas de propriété, alors elle est inutile : autant utiliser une simple fonction."
=> parfois... tu fais un debut de code, il fait tout ce dont tu as besoin... et pourtant... t'as qu'une seule fonction... alors tu laisses ta classe, en esperant trouver d'autres besoins... et ajouter des fonctions...
genre hier, j'ai fait une classe qui parse une requette sql, elle est sous forme de classe pour la structure de donnee (c'est le pied quand meme...) et pour etre ameliore si quelqu'un trouve quelquechose a redire... pour le moment, elle decoupe parfaitement, et permet de recuperer les donnees selectionnees sous la forme array(array(champ1, alias1), ....) c'est super utile....

une recherche sur exalead vous aurait peut-etre evite de poser cette question
In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy

dimanche 27 mai 2007 à 19:49:49 | Re : Découverte POO

kyript

Membre Club

Merci pour ces reponses

Pour répondre à neigedhiver, $conn est effictement un object mais je vais aller voir du coté de singleton  je voit pas ce que s'est exactement

et cette class n'a qu'une méthode car je venait de la commencer  j'ai ensuite poster ce message pour savoir si je partait dans la bonne direction
mais avec plus de code cela aurait ete plus dur de tout changer

merci à vous


dimanche 27 mai 2007 à 20:13:49 | Re : Découverte POO

kyript

Membre Club

cool j'ai donc mis mon constructeur de ma classe sgbd en private
j'accede alors a la connection par la methode statique et tout fonctionne bien

une derniere question pour finir

les autres methode et la class doivent elle etre en private ?
et pour les methode que j'utilise regulierement ( ex insertion de données dans la base)
doivent elle etre en statique aussi ?


merci


dimanche 27 mai 2007 à 20:47:30 | Re : Découverte POO

neigedhiver

Réponse acceptée !
Re, La portée des méthodes permet de t'assurer qu'elles ne seront pas utilisées par d'autres classes, ou, d'une manière plus générale, en dehors de la classe à laquelle elles appartiennent. Private : seule la classe qui définit une méthode privée peut l'utiliser. Protected : seule la classe qui définit une méthode protégée ainsi que d'éventuelles classes parentes ou filles peuvent l'utiliser Public : utilisable n'importe où La portée que tu donnes à une méthode dépend donc uniquement de ce qu'elle fait, de son utilité, de l'utilité que tu en as, éventuellement, de considérations sur la sécurité, du fait que ses paramètres sont ou non vérifiés dans la méthode. Il n'y a donc que toi qui puisses décider de leur portée. A propos des méthodes statiques : http://classes.scriptsphp.org/article.Un-singleton-en-PHP5 Extrait : "PHP5 gère aussi les éléments static dans les classes. C'est à dire que l'élément sera uniquement dépendant de la classe elle-même et non pas de ses instances. Dans le cadre d'une méthode static il est bien entendu impossible d'utiliser le mot clef $this se rapportant à l'objet, étant donnée que la propriété est indépendante de celui-ci." Encore une fois : tout dépend de ce que tu en fais.

dimanche 27 mai 2007 à 21:02:53 | Re : Découverte POO

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
hello,

S'il s'agit de le passer à une méthode et pas au constructeur, cela se justifie tout à fait si l'objet en question n'est utilisé que dans cette méthode, ou est peu utilisé. dans ce cas, inutile de s'embarrasser d'un objet dont on n'aura pas forcément besoin.

lundi 28 mai 2007 à 09:52:20 | Re : Découverte POO

kyript

Membre Club

Salut

merci à vous deux je comprend mieux l'utilité maintenant
l'éxperience definira la methode à utiliser...

bye



Cette discussion est classé dans : function, php, class, conn, news


Répondre à ce message

Sujets en rapport avec ce message

w32api_register_function sous IIS4 [ par vow ] Bonjour, J'ai installé PHP 4.2.3 sous IIS4 (Windows 2000 Professionnel).Apparemment, ça fonctionnait bien.Puis j'ai essayé d'utiliser la fonction "w32 Call to undefined function: () [ par koko ] Fatal error: Call to undefined function: () in e:\program files\easyphp\www\pseudoframe\index.php on line 28 voici l'erreur que j'ai... la function fa Prob pour finaliser mon admin [ par Lump[YaNa] ] Je suis coincer sur la crétion de ma partie admin : la validation des news ne fonctionne pas : le messsage :Parse error: parse error in /var/www/free Codes Php pour des news et autre... [ par Boby_ ] Bonjour,je cherche les codes Php pour les news,et les tests etc.Pour un site sur les jeux vidéos vous comprenez?Et j'aimerais aussi avoir quelle est l Retouches sur un scripts [ par apz ] salut,ce script php, un guestbook, est le livre d'or que je cherchais.mais voila il se base sur les Class, que je ne connais pas desormais.alors je vo systeme de news en xml et php [ par ares666 ] Bonour,Je voudrais faire un systeme de news en php et xml mais je bloque completement.Je me suis documenté un peu mais je ne comprend rien au RSS-XML Création d'une rubrique "news" pour un fan-club en php!! [ par symphox ] Bonjour,Je voudrais savoir si quelqu'un pourrai me faire ma partie "news" de notre fan-club en base de données car je suis pas assez bon en php pour r function php :) [ par GuilleW ] un petit topo:J'ai une page en PHP qui me sert a enregistrer des données dans un fichier. Pour eviter les TRES nombreux rafraichissements qui se feron Function php - js [ par GuilleW ] Bonjour !Toujour en quete de chose impossible, mais indispenssable...Je voudrai lancer un function dasn du code php par un boutton sans rafraichisemen pseudo frame + question dans une "pseudo" page? [ par Linuss ] Bonjour à tous, Je viens d'intégrer des pseudo-frames à mon site web, et malheuresement je ne sais comment faire lorsqu'une de mes "pseudo" page a bes


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.