la programmation objet est pour le confort et la maintenance ^^
il faut juste apprendre a penser objet, et ca c'est un peu plus difficile a s'y mettre.
Mais une fois que c'est fait, quel bonheur...
on se retrouve avec des pages qui contienne que peut de php, le tout etant traiter par les classes et donc les objets...
pour faire un exemple simple:
<?php
$calcul = new Calcul();
$calcul->Initiliser(20); //20
$calcul->Ajouter(20); //40
$calcul->Diviser(8); //5
$calcul->Multiplier(20); //100
$calcul->Resultat(); //affiche le résulat.
?>
//affichage
Le résultat des caculs est de 100.
Tu vois que l'utilisation est relativement simple, claire, propre.
tu n'a pas besoin de recuperer les valeur entre deux pour les remetre en parametre, comme tu devrait le faire avec des fonctions.
Et si demain tu veux rajouter une methode de calcul, c'est super simple. :)
Et le mieux pour s'y retrouver, c'est de faire un fichier par classe.
comme ca, tu es sur de t'y retrouver. En general, un nom comme class_calcul.php, calcul.class.php, etc... est compréhensible, car il porte le meme nom de que ton objet.
Tu peux aussi faire des couches d'abstration, c'est a dire obliger tes fichiers a passer par une classe pour faire certaine chose. Un exemple flagrant se situe sur les classes d'abstraction sql.
tu obliger tous tes fichiers a passer par une telle classe pour effectuer tes requetes.
Quel interet ?
Toutes tes requetes fonctionneront pareillent, seront simplifier, et tu peux y integrer des choses comme la protection, la gestions des erreurs sql, etc...
-------------------------------
couche 1: tes fichiers
(traitement des données...)
-------------------------------
| ^
| |
V |
-------------------------------
couche 2: ta class sql
(protection,gestion erreur,
mise en forme des résultat...)
-------------------------------
| ^
| |
V |
----------------------------
couche 3: la base de donnée
(renvois les données vers
php...)
----------------------------
si tu connais un peu mysql:
<?php
//declaration de l'objet
//la classe gere la connexion, le choix de la base, via un fichier de configuration, ou directement en interne
$mysql = new Mysql();
//la requete:
$query = "SELECT nom FROM pays WHERE continent = 'europe'";
//execution de la requete et recupération des resultat:
$result = $mysql->ExecuteQuery($query);
//on test si la requete est bien passée...
if ($result == FALSE)
{
//traitement de l'erreur...
echo ("une erreur est survenue:");
echo ("Code erreur: ".$mysql->GetErrorMsg()."");
echo ("Message:".$mysql->GetErrorMsg()."");
}
else
{
//affichage des résultat...
foreach($result as $line)
{
echo ("Pays :".$line["nom"]."");
}
}
?>
Pays: France
Pays: Allemagne
Pays: Espagne
...
Voila, c'est un cas super simple.
C'est une classe que j'utilise tout le temps maintenant. Elle s'occupe de la connection a la base de données, et tout ca.
Maintenant, tu veux rajouter une methode.
C'est tout simple, ca se fait tout seul, et tu peux réutiliser les variables internes.
Ainsi, tu ne passe plus beaucoup de parametres, ton code devient clair, et n'importe qui peut utiliser tes classes, en commencant par toi meme, sans savoir comment ca marche :)
Si c'est dans ta classe, tu peut réutiliser les variables interne qui sont encore en memoire.
Bon, c'etait peut etre un peu compliqué cet exemple, mais c'est pour te montrer que ca peut etre assez puissant ^^
Et pour finir, un petit avantage:
Toutes les methodes d'une classes sont plus ou moins lié. C'est comme si tu regroupaient des moutons avec des moutons, et de vaches avec des vaches...
tu les mets dans un fichier, et hop, tu sais que cette classe s'occupe de telle chose.
Les classes sont spécialisées pour faire un ou plusieurs boulot précis, sur un objet précis.
vala, j'espere pas avoir été trop confu.
En tout cas, ca fait quelques mois déja que je ne code plus qu'en classes, en ne fesant plus aucune fonctions, et je m'en sort bien, et c'est super réutilisable pour certaines choses :).
Pour le reste, ca implique parfois quelques petites modif, mais bon, moindres qu'avec des fonctions, crois moi ;)
KeitaroSan