probleme interface [PHP5] - PHP - Programmation
Marsh Posté le 05-12-2006 à 02:15:03
C'est juste que toutes les méthodes d'une interface doivent être déclarées public
Marsh Posté le 05-12-2006 à 10:34:03
En même temps, faut pas vouloir interfacer tout et n'importe quoi
Marsh Posté le 05-12-2006 à 10:36:41
the_bigboo a écrit : C'est très embettant ca !!!! |
Bah non, c'est logique, à quoi ça sert de définir une méthode privée dans une interface ? La classe qui l'implémente ne sera pas obligée de l'utiliser
Genre ta fonction privée _Header() (d'ailleurs vire l'underscore, c'est moche ), si une classe l'implémente, qu'est-ce qui oblige la classe à l'utiliser ? Peut-être d'ailleurs qu'elle ne sera même pas pratique au final...
Marsh Posté le 05-12-2006 à 11:29:38
Tu peux la rendre protected au lieu de private et ca devrait marcher !
Pour info :
Private rend privé ta fonction pour la classe uniquement
Protected rend privé ta fonction pour la classe et ses classes héritières!
Et public rend la fonction public pour tout le monde!
Marsh Posté le 05-12-2006 à 12:53:05
lebayou a écrit : Tu peux la rendre protected au lieu de private et ca devrait marcher ! |
Non car ce n'est pas dans le cadre d'une extension de classe
Interfacer pour tout et n'importe quoi , surement pas, C'esy juste que ca permet je trouve d'avoir un code homogene et dans la mesure que tous les objets que je créé sont en quelques sorte des modules il est plus intéressants qu'ils soient dévelloppés dans un modele commun et ce que ca soit en méthodes publique ou privées...
Marsh Posté le 05-12-2006 à 12:56:53
Si la méthode est privée, elle ne servira qu'à la classe. Et donc est parfaitement inutile dans une interface qui est censé représenté la structure publique d'une classe. Comme dit, vu qu'il n'y a évidemment aucune implémentation dans l'interface (au contraire d'une classe abstraite), ça sert à rien des trucs privés.
Marsh Posté le 05-12-2006 à 00:43:23
Bonsoir
Travaillant sur un projet d'assez grande ampleur et comportant de tres nombreux objet , je dois si je veux maintenir une qualité de code correcte implémenter des interfaces a chacun de mes objets.
Voici ci-dessous une interface que j'ai créé :
le probleme , c'est que quand je l'implémente j'obtiens l'erreur suivante :
Je ne comprends pas vraiment cette erreur... Une idée ?
Nb : je suis en PHP 5.2