Les pages web en php objet ou pas?

cs_8livier Messages postés 13 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 9 mai 2009 - 19 janv. 2007 à 16:32
cs_8livier Messages postés 13 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 9 mai 2009 - 29 janv. 2007 à 14:40
bonjour,

Ca fait quelques temps que je fait du php, et depuis que j'ai appris je ne developpe quand faisant des  requetes sur mysql, afficher les resultats sur la pages web en y mettant du html et du css.
j'utilise également des fonctions faites maison...

J'ai lu quelques trucs sur la possibilité d'utiliser l'objet dans le php, mais je n'en vois pas trop l'interet???
comment vous faites pour developper vos sites avec php?
Utilisez vous les objets et donc les class?
et dans ce cas quels sont les gains?

merci d'avance

5 réponses

Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
19 janv. 2007 à 23:36
Perso, j'utilise quand je peux classes et objets...
D'une part ça permet de bien architecturer le code quand on programme, et je crois que ya un mini gain de vitesse à l'execution.
D'autre part, plus ton site seras gros, plus tu vas te retrouver avec des fonctions à droite, à gauche. En utilisant tes classes, tu sauras où se situent tes fonctions, et avec les constructeurs tu pourras instancier des variables, etc...

Exemple tout bête d'utilisation des classes, le mysql (vu que tu as l'air d'en faire...).
Tu créés une classe mysql, dans laquelle tu auras tes méthodes connect (), query (), disconnect ()...
au lieu à chaque fois faire mysql_query ("ton select"), là tu pourras faire :

$mysql = new mysql ();
$mysql->connect (); // connexion, selection de la table, etc
$result = $mysql->query ("requete");
$result1 = $mysql->query ("requete1");
$mysql->disconnect ();

L'avantage, c'est que dans ta classe mysql tu peux incrémenter une variable à chaque fois que tu appelles la méthode query, et ainsi tenter d'optimiser tes accès à la BDD en optimisant tes requètes, ou alors avoir le temps total des différentes requètes, etc...

Après, c'est surtout une histoire d'habitude et de goûts.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 janv. 2007 à 09:06
Hello,

concernant l'excéution, à moins d'être un vrai pro en POO (et encore), non, il n'y a pas de gain par rapport à du fonctionnel voire du séquentiel, bien au contraire. Quand même.
Mais la POO permet en effet de mieux structurer un projet, déjà, et le rend plus facile à entretenir où à faire évoluer.
Ceci dit, l'avantage principal pour moi est la réutilisabilité. Pour moi, le développement web, c'est plus qu'un hobby : c'est mon boulot. Et des sites ou applications client/serveur diverses, j'en développe toutes les semaines. Du coup, la plupart de mes classes sont dans un répertoire placé au-dessus du root et partagé par toutes les applications.
Quand j'améliore une classe...toutes mes applications en profitent en même temps, sans avoir besoin d'aller copier la classe dans le répertoire de classes de chaque application.
De plus, des classes, ce doit être très modulaire, cela doit être le plus générique possible : ainsi 1 seule classe dans ce répertoire s'adapte à mes besoins parfois légèrement différents d'une application web à une autre.

A part ça, la POO est beaucoup plus puissante que la programmation fonctionnelle (ou séquentielle).

Néanmoins...quand on est un développeur amateur, avec juste un site, ou du moins sans aucun serveur dédié...on peut largement s'en passer. Trop de POO tue la POO... ;-) En fait, c'est vraiment une qustion de besoin : si on en a pas besoin, inutile d'en faire.

Enfin, il y a autre chose à prendre en considération : c'est nettement plus intéressant et drôle de coder en POO, à mon sens ;-)

8livier => au vu de la description de tes besoins, je ne pense pas que tu aies besoin de faire de la POO. Cela peut à la limite faciliter les choses avec une classe DB, et encore...entre l'exemple de Bling, et:
$hCon = mysql_connect (...);
mysql_select_db ($db, $hCon);
mysql_query ($sQuery, $hCon);
mysql_close ($hCon);
je ne vois guère de différence...

Qaunt au "compteur" de performance  :
$iStart = microtime ();
mysql_query ($sQuery, $hCon);
$iStop = microtime ();
echo $iStop - $iStart;
cs_zatt Messages postés 131 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 23 septembre 2011
20 janv. 2007 à 10:26
Bonjour,
avis similaire, le concept Objet te permet te structurer ton code, en en facilitant la maintenance et la réutilisation.
Tu peux ainsi déployer un modèle n-tiers en séparant bien les couches (type MVC, un exemple ici: http://tahe.developpez.com/web/php/mvc/).
De plus des classes de service de type Accès Données, voire une en entrée métier (qui gères les accès aux objets métier), te seront certainement très utiles, en plus d'encapsuler les codes nécessaires.
Plus complexe à mettre en oeuvre (au niveau de la conception), mais approche effectivement beaucoup plus intéressante ...

Maintenant il est vrai que si tu n'en rencontres pas le besoin, pourquoi faire compliqué ..?
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
21 janv. 2007 à 15:52
Oui, je rejoins Malalam sur les différents points.

La programmation objet est modulaire. Tu ne fais qu'étendre les possibilités d'une classe pour satisfaire ton besoin sans toucher à l'original. De plus, la gestion objet/objet est aussi intéressante, comme une gestion de modules par exemple.

Niveau vitesse, tu ne peux rivaliser avec le procédurial étant donné qu'il faut un temps très court pour l'instanciation avec en prime une surcharge de méthode possible.

Mais l'avantage, quand tu captes bien l'objet, c'est qu'une fois les routines developpées t'es tranquille pour un long moment. Et si un jour quelqu'un veut étendre ton projet, un simple "extends" suffit là où il faut réécrire la fonction en procédurial.

Voila pour ma part.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_8livier Messages postés 13 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 9 mai 2009
29 janv. 2007 à 14:40
Salut,


 


Oui finalement en voyant ce que vous dites le 'poo' pourrait m'ettre bien utile!...


car effectivement, je developpe quelques sites et j'ai des pages reccurentes comme la page Agenda que je dois modifier a chaque site pour les personnaliser.
 Si je travaillais en objet, d'apres ce que vous dites, ce serait plus simple car je ferais appel toujours aux memes class et en cas d'evolution je pourrais ,comme malalam, faire evoluer tous les agenda...donc quel gain de temps!
Quant à la personnalisation ce ne serait que le travail en css.

et il est vrai que quand je travaille sur un site qui me semble lourd, revenir sur le code pour apporter une amélioration est toujours un calvère!... Manque de commentaires(ah sacré urgence!), et le travail en séquentiel est loin d'etre clair finalement!

donc presque convaincu, il ne me reste plus qu'à me former aux class et plus largement a la 'POO'...

avez vous quelques liens où je pourrais trouver des infos , pas tant sur la 'POO', mais surtout sur la POO en php??

merci d'avance
Rejoignez-nous