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

kyript
|
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
|
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
|
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
|
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
|
Salut
merci à vous deux je comprend mieux l'utilité maintenant l'éxperience definira la methode à utiliser...
bye
|
|
Cette discussion est classée 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
Livres en rapport
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : SONDAGE..RE : SONDAGE.. par phpAnonyme
Cliquez pour lire la suite par phpAnonyme RE : SONDAGE..RE : SONDAGE.. par TychoBrahe
Cliquez pour lire la suite par TychoBrahe
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|