2009-10-31 3 views
1

Je construis une bibliothèque d'Authentification qui va avoir environ 45+ méthodes pour traiter les choses liées aux utilisateurs. Cependant, je me demandais s'il est vraiment recommandé de garder tout sur un seul fichier.PHP: segmentation de classe?

Y a-t-il un avantage à scinder ma classe en plusieurs sous-classes et à les charger en cas de besoin?

je peux toujours par exemple diviser la classe en éléments « obligatoires » et les éléments qui ont besoin d'utilisateurs enregistrés ...

Par exemple:

  • Méthodes obligatoires:

    • $ utilisateur-> is_logged()
    • $ utilisateur-> connexion()
    • $ us er-> registre()
  • Méthodes pour enregistrer ...

  • Méthodes pour l'utilisateur connecté.
+0

@Ignas R: Merci pour le nouveau marquage. – MarioRicalde

Répondre

2

Cela dépend simplement de la façon dont vous voulez inclure le (s) fichier (s) de classe dans vos pages. Si vous voulez une instruction simplement include() pour chaque page, gardez-la dans un seul fichier. À moins que votre bibliothèque ne soit ÉNORME, les frais généraux des autres classes ne devraient pas être trop élevés.

Si vous le faites dans l'autre sens, vous allez simplement inclure différents fichiers en fonction de l'état de la session du client. Personnellement, je les ai séparés, car il est plus facile de les modifier de cette façon, mais cela dépend entièrement de vous.

+0

La bibliothèque est environ 2000 - 3000 lignes .. Donc je suppose que je devrais vraiment les séparer ..? – MarioRicalde

+0

Ouais, je les séparais ... De combien de classes parlons-nous? Si c'est un nombre décent à gérer, alors je créerais un fichier pour chaque classe, y compris chaque ou créer des "ensembles d'inclusion" pour certaines tâches que vous devez effectuer. (Un peu comme les modèles de manipulation dans un MVC). S'il existe plusieurs classes différentes, il vous suffit de définir les trois catégories que vous avez suggérées dans votre question en tant que «ensembles d'inclusion» et de les inclure si nécessaire. – BraedenP

0

Je voudrais aller avec l'option classe/sous-classe.

Vous pouvez ensuite utiliser une fabrique pour renvoyer le type d'objet utilisateur correct en fonction de l'URL actuelle ou simplement en spécifiant le type d'objet utilisateur souhaité si votre installation particulière ne s'y prête pas.