Bonjour, je suis en train de d�velopper un projet en php enti�rement objet destin� au public d'un centre de formation pour adultes (gestion des stagiaires - parcours de formation - �valuations...). Ayant bien avanc�, je me suis aper�u que mes classes avaient beaucoup de m�thodes et de traitements en commun, et je me disais que le code pouvait �tre r�duit de 50% par le biais de l'h�ritage. J'ai �tudi� la chose d'abord en java, mais impossible � mettre en place (pas de serveur assez costaud + temps de d�veloppement restreint). Je me suis aper�u que la chose �tait beaucoup moins facile en php. Voici par exemple une m�thode statique charg�e de g�n�rer la liste des �l�ments pr�sents dans une table de la base de donn�es (celles ci sont organis�es par "objets-m�tier"): elle est pr�sente dans chaque classe (Formation, Stagiaire, Module...). Seuls le nom de la table dans la requ�te et le type de l'objet instanci� varient selon les classes:
Comment placer cette m�thode dans une classe parente afin qu'elle puisse �tre impl�ment�e et convenir � toutes les classes filles? J'ai pens� au passage de param�tres pr�cisant les �l�ments variables (requ�te, nom de la classe) mais je perds beaucoup du principe objet et je me rapproche d'une fonction banale.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13 public static function getListe() { $i = 0; $formations = array(); $sql = "SELECT id FROM formation ORDER BY libelle"; $query = mysql_query($sql); if(mysql_num_rows($query) == 0) return null; else { while($datas = mysql_fetch_object($query)) { $formations[$i++] = new Formation($datas->id); } return $formations; } }
Partager