2009-01-21 8 views
3

Je suis en train de créer mon CMS personnel et j'ai besoin de vos conseils pour organiser des fonctions et des classes de base. Je possède des dossiers:Création de CMS personnel - classes et bibliothèques

/shared 
    /classes 
     DB.php 
     Session.php 
     Config.php 
     ... 
    /libraries 
     Arrays.php 
     DateTime.php 
     Email.php 
     ... 

Les fichiers dans le dossier 'des classes de base contient des classes (une classe par fichier).

Maintenant, la question concerne/libraries/- ils contiennent des fonctions qui peuvent être utilisées dans n'importe quelle classe, et parfois ils utilisent une autre fonction d'une autre bibliothèque, et parfois ils ont besoin d'accéder à une classe de base. Devrais-je simplement les écrire en tant que fonctions, ou les rendre statiques et envelopper dans une classe? Fondamentalement, j'ai besoin d'eux partout, mais gardez-les organisés.

Répondre

0

Ma suggestion est d'abord réfléchir aux objectifs architecturaux de votre CMS. Bien sûr, ça va être 100% à vous, mais cela ne signifie pas que vous ne souffrirez pas de ne pas être sûr de ce qui est accroché où et comment, ce que cela fait et comment puis-je obtenir à partir d'ici.

C'est pourquoi je ne suggérerais certainement pas que vous ayez des librairies appelant des librairies. De mon point de vue, aucune de vos classes ne devrait être dépendante de quelque chose d'autre, à l'exception des premières classes de base de votre flux d'applications puisque vous souhaitez distribuer le travail dans d'autres classes autonomes. Vous devriez viser la singularité et l'atomicité avec vos classes de base. Je ne sais pas quel sera votre modèle architectural (je suppose que ça va être MVC, HMVC ou PAC), mais je pense qu'il vaut mieux d'abord définir quelques classes de base [/ core] les bases sur l'initialisation de l'application en instanciant certaines bibliothèques [/ bibliothèques] qui sont nécessaires pour analyser la demande de demandes entrantes et effectuer certaines tâches par défaut avant d'initialiser le contrôleur demandé [/ controllers].

Les bibliothèques devraient avoir un seul but. La bibliothèque de gestion de session doit uniquement gérer les sessions, le routage de bibliothèque de routage, etc. Initialement, vous pouvez créer votre contrôleur de base et votre modèle de base et le placer dans [/ core] et avoir des contrôleurs [/ controllers] et des modèles [/ models] contrôleur et modèle de [/ core].

Comme toujours, moins vos composants sont couplés, mieux c'est. Une bonne solution sera légère, petite et étendue dans son but. Il est utile, si vous modifiez à l'avenir des idées de conception, de pouvoir simplement modifier les classes de base et avoir un impact considérable sur l'ensemble de l'application sans avoir à apporter d'autres modifications à d'autres endroits.

+0

merci pour cette réponse descriptive –

1

Dois-je les écrire en tant que fonctions, ou les rendre statiques et envelopper dans une classe ? Fondamentalement, j'ai besoin d'eux partout, mais gardez-les organisés.

Avez-vous déjà consulté les espaces de noms? Envelopper toutes vos fonctions dans un espace de noms serait probablement votre meilleur pari.

Questions connexes