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