Подтвердить что ты не робот

Отдельный администратор и фронт в codeigniter

Каков наилучший способ разделить админ и интерфейс для веб-сайта в codeigniter, где я должен был использовать все библиотеки, модели, помощники и т.д., но только контроллеры и представления будут отдельными.

Я хочу более подходящий путь, для повышения производительности, простоты и совместного использования моделей и библиотек и т.д.

4b9b3361

Ответ 1

Я настоятельно рекомендую прочитать методы, описанные в этой статье, CI dev Phil Sturgeon:

http://philsturgeon.co.uk/blog/2009/07/Create-an-Admin-panel-with-CodeIgniter

Мой совет: используйте модули для организации вашего проекта.

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home

Создайте базовый контроллер для передней и/или внутренней частей. Что-то вроде этого:

// 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
    }
}

Контроллеры задней панели будут extend Admin_Controller, а интерфейсные контроллеры будут extend Public_Controller. Базовый контроллер передней панели на самом деле не нужен, но в качестве примера и может быть полезен. Вы можете расширить MY_Controller, если хотите.

Используйте маршрутизацию URI там, где это необходимо, и создайте отдельные контроллеры для вашего фронтального и заднего конца. Все помощники, классы, модели и т.д. Могут быть разделены, если оба фронтальных и задних контроллеров живут в одном приложении.

Ответ 2

Я использую очень простой подход: папки с файлами. Ознакомьтесь с разделом "Руководство пользователя CI", "Организация ваших контроллеров в подпапках" .

У меня есть мой публичный веб-сайт, построенный так, как любой другой будет построен с CodeIgniter. Затем у меня есть две дополнительные папки, controllers/admin и views/admin.

Доступ к администраторам администратора осуществляется через http://[hostname]/admin/controller и ведет себя так же, как и любой другой контроллер, за исключением того, что они имеют специальные проверки подлинности. Аналогично, представления просто вызываются с включенным именем папки: $this->load->view('admin/theview');.

Я не нашел причины сделать что-то более сложное.

Ответ 3

Здесь вы можете найти полное решение, https://github.com/bhuban/modular

Разделение модулей для администратора и внешнего интерфейса с использованием разделения HMVC и шаблонов с использованием библиотек шаблонов

Я использую две сторонние библиотеки, вы можете найти их в zip файле.

  • HMVC для модульной разработки, разработанной wiredesignz
  • Шаблон для шаблонов для Phil Sturgeon

Просто распакуйте его в корневой каталог веб-сервера и запустите

localhost/modular for front-end

и

localhost/modular/admin for back-end

application/back-modules, это для внутренних модулей

application/front-modules, это для интерфейсных модулей

аналогично templates/admin для базовых шаблонов templates/front для интерфейсных шаблонов

themes/admin для фоновых тем themes/front для интерфейсных тем

Ничего взломанного в исходном коде, просто настроенном с использованием config.php и index.php