Quelle est la meilleure façon de séparer admin et front-end pour un site Web dans CodeDIGNITiter, où je voudrais utiliser toutes les bibliothèques, modèles, aides, etc. en commun, mais seuls les contrôleurs et les vues seront séparés.
Je veux une manière plus appropriée, pour la performance, la simplicité et le partage de modèles et de bibliothèques, etc.
Je suggère fortement de lire les méthodes décrites dans cet article par CI Dev Phil Sturgeon:
http://philsturgeon.co.uk/blog/2009/07/create-an-Admin-Panel-with-CodeItre
Mon conseil: Utilisez des modules pour organiser votre projet.
https://bitbucket.org/wiredesignz/codeigner-modular-extensions-hmvc/wiki/home
Créez un contrôleur de base pour l'avant et/ou le backend. Quelque chose comme ça:
// core/MY_Controller.php
/**
* Base Controller
*
*/
class MY_Controller extends CI_Controller {
// or MX_Controller if you use HMVC, linked above
function __construct()
{
parent::__construct();
// Load shared resources here or in autoload.php
}
}
/**
* Back end Controller
*
*/
class Admin_Controller extends MY_Controller {
function __construct()
{
parent::__construct();
// Check login, load back end dependencies
}
}
/**
* Default Front-end Controller
*
*/
class Public_Controller extends MY_Controller {
function __construct()
{
parent::__construct();
// Load any front-end only dependencies
}
}
Les contrôleurs d'extrémité arrière extend Admin_Controller
et les contrôleurs d'extrémité avant extend Public_Controller
. Le contrôleur de base d'extrémité avant n'est pas vraiment nécessaire, mais dans ce par exemple, et peut être utile. Vous pouvez prolonger MY_Controller
Au lieu de cela, si vous voulez.
Utilisez routage URI si nécessaire et créez des contrôleurs distincts pour votre extrémité avant et votre arrière-plan. Tous les aides, classes, modèles, etc. peuvent être partagés si les contrôleurs d'extrémité avant et arrière vivent dans la même application.
J'utilise une approche très simple: dossiers de fichiers. Consultez la section Guide de l'utilisateur CI, Organisation de vos contrôleurs en sous-dossiers .
J'ai mon site Web en face publique construit comme tout autre serait construit avec CodeDIconiter. Ensuite, j'ai deux dossiers supplémentaires, controllers/admin
Et views/admin
.
Les contrôleurs d'administrateur sont accessibles via http: // [nom d'hôte]/admin/contrôleur et se comporter comme tout autre contrôleur, sauf qu'ils ont des contrôles d'authentification spécifiques. De même, les vues sont simplement appelées avec le nom du dossier inclus: $this->load->view('admin/theview');
.
Je n'ai pas trouvé de raison de faire quelque chose de plus compliqué que cela.
Vous pouvez tous trouver une solution complète ici, https://github.com/bhuban/modulaire
Séparation de module pour admin et front-end à l'aide de la séparation HMVC et de modèle à l'aide de bibliothèques de gabarits
J'utilise deux bibliothèques tierces, vous pouvez le trouver dans le fichier zip.
Il suffit de le décompresser dans le répertoire racine de votre serveur de serveur Web et de votre exécution
localhost/modular for front-end
et
localhost/modular/admin for back-end
application/back-modules
, c'est pour les modules d'arrière-plan
application/front-modules
, c'est pour les modules frontaux
de la même manière templates/admin
pour les modèles d'arrière-plan templates/front
pour les modèles frontaux
themes/admin
Pour les thèmes de fin de course themes/front
pour les thèmes frontaux
Rien de piraté dans le code d'origine juste configuré à l'aide de config.php et index.php