![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
CosmoKnacki
Si plusieurs classes partagent une ou plusieurs méthodes, tu peux utiliser
les traits. Sinon un autre solution consiste à utiliser l'héritage, mais c'est moins souple car il faut que tes classes aient un ancêtre commun qui implémente la ou les méthodes (sans que ça devienne un non-sens total).
Niet pas d'héritage , sinon ça devient de l'héritage fonctionnel et c'est exactement ce qu'il faut éviter en POO.
Pour moi la bonne pratique c'est la création de ce qu'on va appeler des "helpers". Ce sont des classes le plus souvent statique qui permettent d'encapsuler les fonctions "utilitaires" qui peuvent être utilisée un peu partout mais qui n'ont pas à faire partie d'autre classe sémantiquement parlant.
Dans ton cas précis on pourrais imaginer un helper "date" dans lequel tu vas venir mettre toutes les fonctions utile :
1 2 3 4 5 6 7
| class DateHelper
{
public static function getCurrentScolarYear()
{
// Ton code
}
} |
Et partout où tu en as besoin tu peux faire :
$year = DateHelper::getCurrentScolarYear();
Si ensuite tu à besoin de fonction pour faire des actions sur les chaines de caractères tu peux faire un helper "StringHelper" ou tu vas venir mettre tout ce qui te permet de traiter tes chaines partout dans ton code.
Un exemple complet de helper sur les strings extrait de mon framework : https://github.com/grunk/Pry/blob/ma...il/Strings.php
Tu répètes ensuite l'opération pour toutes les "catégories" de fonctions (string,date ...)
Partager