Les pages web en php objet ou pas?

Signaler
Messages postés
13
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
9 mai 2009
-
Messages postés
13
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
9 mai 2009
-
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

Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
2
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.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
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;
Messages postés
131
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
23 septembre 2011

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é ..?
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
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.
Messages postés
13
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
9 mai 2009

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