J'ai eu des problèmes d'envelopper mon cerveau sur la manière d'utiliser correctement l'extension modulaire pour CodeDigniter. D'après ce que je comprends, les modules doivent être entièrement indépendants les uns des autres afin que je puisse travailler sur un module et ne pas avoir à vous inquiéter de ce que mon coéquipier travaille. Je construis un frontend et un backend sur mon site et je suis confondu de la manière dont je devrais structurer mes applications.
La première partie de ma question est de devrais-je utiliser les contrôleurs racines de l'application pour exécuter des modules ou les utilisateurs devraient-ils aller directement sur les modules par les URL? C'est-à-dire: dans mon accueil.php
public function index()
{
$this->data['blog'] = Modules::run( 'blog' );
$this->data['main'] = Modules::run( 'random_image' );
$this->load->view('v_template', $this->data);
}
public function calendar()
{
$this->data['blog'] = Modules::run( 'blog' );
$this->data['main'] = Modules::run( 'calendar' );
$this->load->view('v_template', $this->data);
}
Ma deuxième partie de la question est de créer des dossiers de module d'extrémité avant/arrière séparés
-config
-controllers
welcome.php
-admin
admin.php
-core
-helpers
-hooks
-language
-libraries
-models
-modules-back
-dashboard
-logged_in
-login
-register
-upload_images
-delete_images
-modules-front
-blog
-calendar
-random_image
-search
-views
v_template.php
-admin
av_template.php
Toute aide serait grandement appréciée.
Juste partager ce que je fais.
Je laisse les utilisateurs accéder directement au module. J'ai des contrôleurs séparés pour le backend et le frontend pour le module dans le module.
Tous les contrôleurs de backend s'étendent Admin_Controller et Controller frontal s'étendent avant_controller.
La page d'administration est rendue par le module lui-même (il existe un modèle maître pour la zone d'administration/la zone avant et le module remplit la zone de travail principale du modèle).
Toutes les demandes sont traitées par les modules lui-même.
De cette façon, les deux backends et frontends sont uniquement gérés par le module lui-même.
Ma structure de dossiers est légèrement différente que la vôtre:
+application
|--+modules
|--+content
|--+controllers
| |--+admin
| |--Content_Controller.php (This handles the backend requests)
| |--Content_Controller.php (This handles the frontend requests)
|--models
|--+views
| |--+admin (this contains the views for backend)
| |--+front (this contains views for front end)
Donc, si vous devez supprimer le module de contenu, supprimez simplement le dossier du répertoire des modules. :)