Aller au contenu

"Spliter" une classe


Sujets conseillés

Posté

Bonjour à tous,



Je fais face à un petit soucis et votre aide serait la bienvenue.



Je suis actuellement en train de coder une assez grosse classe qui va regrouper pas mal de methode.



Je cherche un moyen de séparer ma classe en plusieurs fichier.




Pour voir les choses très grossierement, j'aimerai pouvoir faire quelque chose de ce genre :




class A {

public function abc () {
return a;
}

include('mon_fichier.php');

}

Contenu de "mon_fichier.php" :




public function def() {
return b;
}


J'avais vu qu'il existait "aggregate_methods" mais c'est depracated et le soucis c'est que j'aimerai rester qu'avec un seul objet.



C'est peut etre une question vraiment très bête mais je ne vois pas comment faire...



D'avance merci beaucoup de votre attention !










Posté

A part le nombre de lignes de ton fichier, un intérêt à vouloir découper en plusieurs fichiers ta classe?


Posté
A part le nombre de lignes de ton fichier, un intérêt à vouloir découper en plusieurs fichiers ta classe?

Non aucun interet à part ca.

C'est juste pour structurer ma classe. Mais j'aimerai vraiment pouvoir le faire.

Posté

Ce n'est pas possible, et cela serait une très mauvaise idée si ce l'était, en effet, découper en plusieurs fichier une classe pose un problème d'intégrité sur cette dernière.


Posté

Si le nombre de ligne pose problème (c'est stupide par contre), il te suffit de l'étendre (mais ça n'a aucun sens conceptuellement parlant) :


Ficher 1:



class A{
function foo(){

}
}

Fichier 2 :



class B extends A{
function bar(){

}
}

Et tu n'instancies que B. Tu peux même considérer A comme abstraite dans la mesure où tu n'es pas censé l'instancier, mais vu la raison pour laquelle tu souhaites découper, je pense que ça sert à rien.



Le concept existe en .NET avec le mot-clé partial, mais il a été introduit pour une bonne raison, pas uniquement pour le nombre de ligne wink.gif


Tiens, j'ai lu en diagonal, mais voici pourquoi : http://www.devx.com/dotnet/Article/22603


Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...