Actualites | Forum |Archives
Le magazine des décideurs et webmasters qui gagnent !
Inscription | Livre d'or | Plan du site | 15 visiteurs actifs
   
A la Une
Actualité
Dossiers
Communiqués
Coin Technique
Agenda des salons
Emploi
Echange de liens

Archives
Sélection
Expérience qui parle
Internet quotidien
Tous les dossiers

Forum
Forum SAM-MAG

Guides
Check-list de la promotion des sites
Promouvoir et référencer les sites web

Contact
Nous contacter
Newsletter
La protection des données personnelles


 
  De la réutilisabilité (2ème partie)
... les langages objets

Dossier "SAM l'Informaticien" du 24 juillet 6 août 2000 par Daniel Lucazeau

l y a beaucoup de façons de ne pas réécrire le code, nous l'avons vu dans le premier article sur ce thème. Cela va du " copier/coller " aux " include ". Il en est une autre qui n'est pas possible avec tous les langages de programmation. C'est l'utilisation d'objets.

On en parle beaucoup, et tout se dit. Je vais bien me garder d'être théorique sur le sujet, je vais en faire une approche pragmatique. PHP va être notre support car c'est un langage orienté objet, libre et facile.

Il y a une correspondance parfaite avec les objets du monde réel. Suivant le système d'information, les objets pourront être des clients - des contrats - des factures - des cartes bancaires pour un magasin en ligne, ou bien encore des classes-des profs - des salles - des programmes pour un système d'emploi du temps, ou bien encore des mails avec des adresses-un contenu.

L'intérêt évident de cette approche est que le concepteur a le même langage que l'utilisateur, celui-ci y retrouve ses petits et peut donc bien mieux dialoguer sur les concepts que devant un superbe MCD (modèle conceptuel de données)...

Les classes et les objets

J'ai volontairement commis un abus de langage, ce que j'ai appelé objet jusqu'à présent correspond à des classes. Une classe est un ensemble, l'objet est un élément de cet ensemble et comme M. Jourdain on fait des maths ensemblistes, comme quoi ce n'est pas si compliqué..
Un objet est une entité informatique autonome. Il comprend deux parties, l'une statique - son état et les liens avec les autres objets - ce sont les propriétés et l'autre dynamique - ses comportements, ses réactions- ce sont ses services. La classe est le regroupement d'objets qui partagent les mêmes propriétés et les mêmes services ; on parle alors des attributs et des méthodes de la classe.
Etudions de plus près un exemple que j'aime bien, plus abstrait mais ô combien pratique, celui des accès aux données.

Exemple, les accès aux données

Il n'est pas rare que nous devions manipuler plusieurs tables liées, d'une même base ou non d'ailleurs. Chaque curseur est au moins défini par la base auquel il accède avec nom du serveur, nom de la base, code utilisateur et mot de passe utilisateurs. Ensuite ce qui différencie un curseur d'un autre c'est ce que l'on va lui faire faire. C'est à dire les méthodes: exécuter une requête, nous renvoyer les lignes etc..
On définit donc une classe BDD :
Je prends comme support un extrait de phpLib, qui contient tout le module d'accès aux données.

Notation sommaire             
En PHP pour MySQL

Classe BDD

  • Données/Attributs
    • Serveur ": string" ;
    • Nom de la base ": string" ;
    • Utilisateur ": string" ;
    • Mot de passe ": string" ;
    • Il y en a d'autres…
  • Services/Méthodes
    • Connecter";
    • Exécuter requête" ;
    • Donner ligne du résultat" ;
    • Etc…
  • Fin de la classe.

class BDD {

  /* paramètres de connexion */
   var $Host = "";
   var $Database = "";
   var $User = "";
   var $Password = "";

     /* fonction de connexion * /
   function connect() }
}

Un des atouts de cette technologie est que l'on peut sous-classer. On crée une classe qui dérive de celle que l'on vient de définir. La sous-classe hérite, on appelle cette technique l'héritage d'ailleurs, de tous les attributs et de toutes les méthodes de son aïeule. Mais on peut les spécialiser, on peut aussi en ajouter. Dans notre cas nous pouvons dans un contexte particulier valoriser les paramètres de connexion à la base, la fonction de connexion est celle de la classe BDD :

.                                              
.

Classe BDD1 sous-classe de BDD

  • Données/Attributs
    • Serveur "= valeur" ;
    • Nom de la base "= valeur";
    • Utilisateur "= valeur" ;
    • Mot de passe "= valeur" ;
    • Il y en a d'autres…

Fin de la classe.

class BDD1 extends BDD {
     var $Host = "hhhhhhhh";
     var $Database = "dbdbdbdb";
     var $User = "uuuuuuu";
     var $Password = "pwpwpwpw";..

Instanciation

Pour exploiter cette classe, cela dépend des langages mais c'est souvent " new " qui est utilisé. En PHP ce sera " $curseur = new BDD1; ". On crée un objet, on a initialisé une instance de la classe, on a réalisé une instanciation de la classe. Les données sont privatives d'une instance.
On accédera alors aux propriétés : " $hostCourant = $curseur->Host; " ;
et aux méthodes par (ligne suivante de la requête) " $qcurseur->next_record(); ".

Comme on peut réaliser autant d'instances d'une classe que l'on veut, il devient évident que dans notre exemple on peut manipuler autant de requêtes SQL dont on a besoin et ce en parallèle sans se mélanger les pinceaux..

Avec des méthodes aussi puissantes que cela, " programmer des boucles imbriquées sur différentes requêtes en cascade " devient (presque) un jeu d'enfants, mais ils préfèrent la console…

<< 1ère partie

Daniel Lucazeau
Ajornet.com
Chef de projet Internet
Développeur informatique

Tous droits réservés - Reproduction même partielle interdite sans autorisation préalable

 
 
Google
 
Web www.sam-mag.com
 

Copyright © ACORUS 2004. All Rights Reserved

- Sam-Mag.com Referencement-Sur-mesure - Referencer-Site-Web.com
Visibilite-Internationale.com - Referencement-Immobilier.net