Administration séparée et Front dans codeigniter
Quelle est la meilleure façon de séparer admin et front-end pour un site Web en codeigniter où comme je devais utiliser toutes les bibliothèques, les modèles, les helpers etc. en commun, mais seulement les contrôleurs et les Vues seront séparés.
je veux une façon plus appropriée, vers le haut pour la performance, la simplicité, et le partage des modèles et des bibliothèques, etc.
3 réponses
je vous suggère fortement la lecture de l'méthodes décrites dans cet article par CI dev Phil Esturgeon:
http://philsturgeon.co.uk/blog/2009/07/Create-an-Admin-panel-with-CodeIgniter
mon conseil: utilisez des modules pour organiser votre projet.
https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home
Créer un contrôleur de base pour l'avant et / ou l'arrière. Quelque chose comme ceci:
// 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
}
}
Retour fin contrôleurs extend Admin_Controller
, et avant la fin de contrôleurs extend Public_Controller
. Le contrôleur de base de l'avant n'est pas vraiment nécessaire, mais là comme un exemple, et peut être utile. Vous pouvez étendre MY_Controller
à la place si vous le souhaitez.
Utiliser URI routing si nécessaire, et créer des contrôleurs séparés pour votre extrémité avant et arrière. Tous les helpers, classes, modèles etc. peut être partagé si les deux contrôleurs avant et arrière vivent dans le même application.
j'utilise une approche très simple: dossiers. Consultez la section du guide D'utilisation de CI,organisation de vos Controllers en sous-dossiers.
j'ai mon site web public construit comme toute autre serait construit avec CodeIgniter. Alors j'ai deux dossiers supplémentaires, controllers/admin
et views/admin
.
les controllers admin sont accessibles via http://[nom d'hôte]/admin/controller, et se comporter comme n'importe quel autre contrôleur sauf qu'ils ont spécifique vérifications d'authentification. 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 trouver une solution ici, https://github.com/bhuban/modular
séparation des modules admin et front-end en utilisant HMVC et séparation des modèles en utilisant des bibliothèques de modèles
j'utilise deux bibliothèques tierces, vous pouvez le trouver dans le fichier zip.
- HMVC pour modulaire développé par wiredesignz
- moteur de Template de template par Phil Esturgeon
il suffit de le décompresser dans votre répertoire racine du serveur web et exécuter
localhost/modular for front-end
et
localhost/modular/admin for back-end
application/back-modules
, c'est pour les modules
application/front-modules
, c'est pour le front-end des modules
de même
templates/admin
pour les modèles
templates/front
pour le front-end templates
themes/admin
pour les thèmes de fin de chapitre
themes/front
pour le front-end thèmes
rien de piraté dans le code original juste configuré en utilisant config.php et l'index.php