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.

17
demandé sur Benjamin 2011-09-22 11:55:36

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.

16
répondu Wesley Murch 2011-09-22 08:55:58

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.

10
répondu Mike S. 2014-02-06 22:06:40

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.

  1. HMVC pour modulaire développé par wiredesignz
  2. 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

2
répondu Bhuban 2012-11-12 08:15:03