Organisation Objets PHP

Fermé
niahoo Messages postés 247 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 23 mai 2010 - 18 févr. 2010 à 19:22
niahoo Messages postés 247 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 23 mai 2010 - 18 févr. 2010 à 20:48
Salut,

je voudrais avoir différentes opinions par rapport à ce qui devrait et ce qui ne devrait pas être implémenté dans une classe. (il n'y aura pas de bonne ou mauvaise réponse je pense, mais différents concepts)

Par exemple :

je dois créer un simple classe "document texte" qui va servir à simplement gérer un bout de texte, et des métadonnées qui lui sont associées.
Ce document sera stocké dans une classe qui permettra de faire des opérations dessus : en chercher la traduction, l'enregistrer sur un disque, le transformer en image, ou je ne sais quoi.

Pensez-vous qu'il faille mettre dans la classe (ou dans une classe mère) le nom de la table mysql dans lequel il sera stocké ? pensez vous qu'il faille y mettre la connexion à la base ? Ou faudrait-il passer ces ressources en paramètres à une méthode ?

(Sachant qu'une base de données sera toujours le choix par défaut pour enregistrer ou charger les données)


Merci.

2 réponses

artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
18 févr. 2010 à 20:07
je vais récapituler pour voir si j'ai bien compris...
alors pour ta classe elle contiendra sûrement
l'adresse du fichier
le texte qu'il contient
sa traduction
une méthode pour le lire
une méthode pour le traduire
une méthode pour enregistrer...

Sachant que la pluspart des informations sont enregistrées sur une base de donnée.

Ce que MOI je ferais :
à mettre dans ta classe qui correspond au fichier :
function __construct($nom){
$resultat_requete=mysql_query("SELECT * FROM table_fichier WHERE nom_fichier='".$nom."'");
$resultat_requete=mysql_fetch_assoc($resultat_requete);
//puis tu attribues les valeurs aux variables :
$this->nom=$nom;
$this->adresse=$resultat_requete['adresse'];
$this->contenu=$this->lire_document();//et ainsi de suite
}

ensuite dans un document à part tu crées, dans un fichier bien protégé (CHMOD restrictif) :
function connexion($database){
mysql_connect("serveur","racine","mot de passe");
if(!mysql_error()){
mysql_select_db($database);
$erreur=false;
}
else{
$erreur=log_error("\n".mysql_error(),3,"fichier_log.log");
$erreur=true;
}

(et n'oublie pas de créer un fichier "fichier_log.log" dans le répertoire de connexion)
enfin dans le fichier global, où tu dois faire appel à ta classe :
include(connexion.php);
require(taclass.php);
if(!erreur){
$fichier=new taclass("nom_du_fichier");
/*reste du code*/
}
else{
echo('une erreur est survenue, merci de nous pardonner ce désagrément');
}
0
niahoo Messages postés 247 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 23 mai 2010 19
18 févr. 2010 à 20:48
Ok donc toi tu préconises l'implémentation des requêtes et du nom des tables dans les classes, mais de leur fournir une connection extérieure.

J'utilise PDO donc ça sera pas mal pour commencer.

Quelqu'un d'autre aurait-il suivi un autre schema ?
0