Php en poo ou procédurale ?

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

netsys
WRInaute accro
WRInaute accro
 
Messages: 1110
Inscription: Sam Juil 17, 2004 18:47

Php en poo ou procédurale ?

Message le Mar Avr 25, 2006 21:30

Bonjour,

Je suis en train de développer un site Internet d'annonces qui sont ajoutées via un partie administration (formulaires) par des personnes ayant un compte sur le site.

Je me pose la question, sachant que je n'ai pas tellement d'expérience en programmtion objet de savoir si la poo serait adaptée pour la gestion de ce type de site.

Les données des annonces seraient stockées dans une BD et les membres les rentreraient depuis un formulaire de leur espace réservé.

Mes données des annonces peuvent donc venir de 2 origines différentes (bd et formulaire). Comment gérer le constructeur des annonces dans ce cas ?

De plus si je créé un objet membre avec la méthode : ajouterAnnonce(a,b,c,d,...) qui ajoute une annonce dans la base pour le membre auquel s'applique la méthode, je dois créer un instance d'un objet membre qui comporte pas mal de données (nom, profession...) que je n'exploite pas forcément dans tous les cas...

Bref je suis un peu perdu...

Y'a t'il des pros de la poo ?

(en fonction de l'aide apportée : partenariats, échanges de services ... possibles ;-) )

thierry8
WRInaute accro
WRInaute accro
 
Messages: 3251
Inscription: Lun Juil 11, 2005 11:47

Message le Mar Avr 25, 2006 21:51

euh...là c'est vraiment plus compliqué que ça.


"Je me pose la question, sachant que je n'ai pas tellement d'expérience en programmtion objet de savoir si la poo serait adaptée pour la gestion de ce type de site."

La réponse est clair : oui ;) tu t'en doutais !
La POO à l'avantage d'être réutilisable n'importe où et facilement, de plus elle sera facilement modifiable si l'on veux ajouter quelques options, etc.. Enfin tout est relatif bien entendu, il faut que la class soit à la base cohérente et bien écrite.



"Les données des annonces seraient stockées dans une BD et les membres les rentreraient depuis un formulaire de leur espace réservé.

Mes données des annonces peuvent donc venir de 2 origines différentes (bd et formulaire). Comment gérer le constructeur des annonces dans ce cas ?"


Non, tes données (d'après ce que tu dis) ne viennent pas de deux sources différentes ! Le formulaire permet d'insérer des données dans la base de données et la base de données donne les informations nécessaires pour l'affichage. Donc une seule possibilité pour ajouter des informations sur le site : le formulaire.

E D I T : oh fait...
Quel langage utilisé ?
Quel version du langage ?

netsys
WRInaute accro
WRInaute accro
 
Messages: 1110
Inscription: Sam Juil 17, 2004 18:47

Message le Mar Avr 25, 2006 22:09

Comme le titre l'indique c'est du php... en version 5 .

thierry8 a écrit:Non, tes données (d'après ce que tu dis) ne viennent pas de deux sources différentes ! Le formulaire permet d'insérer des données dans la base de données et la base de données donne les informations nécessaires pour l'affichage. Donc une seule possibilité pour ajouter des informations sur le site : le formulaire.


Ben en fait, quand je disais que mes données venait de 2 sources c'est si je créé un objet "Annonce" avec les données du formulaire avec une méthode pour l'insérer dans la base ( monAnnonce->insertBd() ) et un autre constructeur qui créé un objet "Annonce" avec les données récupérées dans la bd pour l'affichage sur le site...

Ou alors si c'est un objet membre qui applique la fonction membre->insertAnnonceBd("azeaze","azeaze",...) y'a des infos de l'objet membre qui ne me sont pas nécessaires. J'ai donc peur de ralentir l'execution du script...

thierry8
WRInaute accro
WRInaute accro
 
Messages: 3251
Inscription: Lun Juil 11, 2005 11:47

Message le Mar Avr 25, 2006 22:21

netsys a écrit:Comme le titre l'indique c'est du php... en version 5 .

Oups..en effet.

netsys a écrit:
thierry8 a écrit:Non, tes données (d'après ce que tu dis) ne viennent pas de deux sources différentes ! Le formulaire permet d'insérer des données dans la base de données et la base de données donne les informations nécessaires pour l'affichage. Donc une seule possibilité pour ajouter des informations sur le site : le formulaire.

Ben en fait, quand je disais que mes données venait de 2 sources c'est si je créé un objet "Annonce" avec les données du formulaire avec une méthode pour l'insérer dans la base ( monAnnonce->insertBd() ) et un autre constructeur qui créé un objet "Annonce" avec les données récupérées dans la bd pour l'affichage sur le site...

Ou alors si c'est un objet membre qui applique la fonction membre->insertAnnonceBd("azeaze","azeaze",...) y'a des infos de l'objet membre qui ne me sont pas nécessaires. J'ai donc peur de ralentir l'execution du script...

Il faut bien créer (enfin il faut, on peut faire comme on veut hein !) une class, avec des méthodes différentes, en l'occurence une pour l'insertion et l'autre pour extraire les données nécessaires à l'affichage.

Je ne comprends pas bien ce que viennent faire les informations membres dans cette class ???

haute-definition.info
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 127
Inscription: Lun Nov 07, 2005 2:25

Message le Mar Avr 25, 2006 22:23

netsys a écrit:membre->insertAnnonceBd("azeaze","azeaze",...)


Cela me parait "conceptuellement" faux. Cela signifie que tu insère l’annonce dans le membre 8O. insertAnnonce est plutôt une méthode d’un objet "liste_annonce".

netsys
WRInaute accro
WRInaute accro
 
Messages: 1110
Inscription: Sam Juil 17, 2004 18:47

Message le Mar Avr 25, 2006 22:45

Ok, donc comme ca c'est mieux monAnnonce->insertBd()

J'ai encore un petite question qui me travaille :

Si j'ai 2 gabarits de pages : Listing d'annonces et Fiche annonce
dans listing d'annoce je me retrouve avec un tableau d'objet annonce mais je ne vais pas exploiter dans mon listing toutes les infos des objets annonces qui seront affichées plutôt dans la fiche.
Ca me gene un peu de créer un objet dont je n'utiliserais pas toutes les données dans certains cas. Dois-je créer un objet annonceMini dans le cas du listing ?

Quel est le mieux pour ce type de projet ? poo ou procédurale ? :
- d'un point de vue conception
- d'un point de vue charge serveur et rapidité d'execution

haute-definition.info
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 127
Inscription: Lun Nov 07, 2005 2:25

Message le Mar Avr 25, 2006 23:08

Je dirais plutôt :
$listing->insertAnnonce(...)

Et pour 2 pages, tu utiliserais :
Pour le listing :
$listing->Afficher( )
Pour la fiche :
$annonce->Afficher( )

Un projet comme celui-ci est faisable en procédurale. Je pense même que ca doit se coder plus rapidement en procédurale.
Mais en objet ton code sera plus évolutif, plus réutilisable... Au niveau de la charge du serveur, il ne doit pas y avoir beaucoup de différence.

netsys
WRInaute accro
WRInaute accro
 
Messages: 1110
Inscription: Sam Juil 17, 2004 18:47

Message le Mar Avr 25, 2006 23:22

haute-definition.info a écrit:Je dirais plutôt :
$listing->insertAnnonce(...)


insertAnnonce c'est pour la ajouter les l'annonce dans la BD.
je vois pas trop en quoi cela concerne un objet listing qui est plus significatif pour l'affichage. je peux très bien faire monAnnonce->insertBd() !?

haute-definition.info a écrit:Et pour 2 pages, tu utiliserais :
Pour le listing :
$listing->Afficher( )
Pour la fiche :
$annonce->Afficher( )


Concernant l'objet listing, ca décale juste le problème car listing est un objet contenant une liste d' (objets) annonces; Mais dans mon listing j'ai pas besoin de toute les données des objets Annonce...

haute-definition.info
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 127
Inscription: Lun Nov 07, 2005 2:25

Message le Mar Avr 25, 2006 23:57

Tu peux faire monAnnonce->insertBd.
Ce que je voulais dire, c’est que tes membres veulent ajouter leur annonce dans le listing, l’insertion dans la base c’est ton implémentation.

Tu n’es pas obligé d’avoir la liste d’annonces dans l’objet listing. Tu peux juste faire une requête pour récupérer les infos dont tu as besoin au moment de l‘affichage.


Fab le Fou
WRInaute accro
WRInaute accro
 
Messages: 1511
Inscription: Jeu Déc 02, 2004 15:20

Message le Mer Avr 26, 2006 7:38

haute-definition.info a écrit:Mais en objet ton code sera plus évolutif, plus réutilisable... Au niveau de la charge du serveur, il ne doit pas y avoir beaucoup de différence.


Effectivement, ce n'est qu'un choix de conception.

Cela peut par contre rendre plus intuitif l'utilisation du cache qui lui va jouer sur la charge serveur.

C'est l'utilisation de fonctions générant mon cache qui me donne envie de passe en POO depuis un bout de temps, puisqu'il m'oblige à penser en "objet".

J'en ai un peu fait en C++ par le passé, et j'avais vraiment trouvé ça très puissant...

thierry8
WRInaute accro
WRInaute accro
 
Messages: 3251
Inscription: Lun Juil 11, 2005 11:47

Message le Mer Avr 26, 2006 8:32

Fab le Fou a écrit:J'en ai un peu fait en C++ par le passé, et j'avais vraiment trouvé ça très puissant...


C'est très puissant, il suffit juste de savoir ce servir de l'outil.

Mieux vaut rester en procédurale si l'on ne maîtrise pas la POO, du moins ces bases..
Sinon, cela peut effectivement tourner au désastre et la plus aucun gain, aussi bien en terme de fiabilité/rapidité, facilité de réexploitation, etc...

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Mer Avr 26, 2006 8:52

thierry8 a écrit:Mieux vaut rester en procédurale si l'on ne maîtrise pas la POO, du moins ces bases..
Sinon, cela peut effectivement tourner au désastre et la plus aucun gain, aussi bien en terme de fiabilité/rapidité, facilité de réexploitation, etc...


Sage conseil, surtout si le but est de mettre le site en production.

netsys
WRInaute accro
WRInaute accro
 
Messages: 1110
Inscription: Sam Juil 17, 2004 18:47

Message le Mer Avr 26, 2006 9:00

haute-definition.info a écrit:l’insertion dans la base c’est ton implémentation.


Oui mais autant utiliser l'objet et ses méthodes.

Bon ben du coup je ne sais toujours pas quelle implémentation, poo ou procédurale, utiliser :cry:

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Mer Avr 26, 2006 9:02

netsys a écrit:Bon ben du coup je ne sais toujours pas quelle implémentation, poo ou procédurale, utiliser :cry:


Tu en est où de ton projet ?
Tu t'y connait en POO ?

netsys
WRInaute accro
WRInaute accro
 
Messages: 1110
Inscription: Sam Juil 17, 2004 18:47

Message le Mer Avr 26, 2006 9:25

J'ai définie un mini cahier des charges avec les fonctionnalités

J'ai définie la charte graphique générale et de quelques gabarits.

J'en suis à choisir la manière d'implémenter la partie d'administration pour les membres et l'exploitation des données sur le site. J'ai envie de faire les choses de manière propre (en terme de rapidité d'execution et de sécurité). J'ai étudié la poo mais de la à l'utiliser pour des projets comme celui que je voudrai faire, j'aurai pas mal de chose à apprendre.

Alors comme dit si je peux trouver quelqu'un qui puisse me donner des pistes et comme dit en fonction de l'aide apportée il y a possibilité de partenariats et d'échanges de services...

Php en poo ou procédurale ?

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités