Отдельный Админ и Фронт в codeigniter - PullRequest
17 голосов
/ 22 сентября 2011

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

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

Ответы [ 3 ]

16 голосов
/ 22 сентября 2011

Я настоятельно рекомендую прочитать методы, изложенные в этой статье 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-маршрутизацию , где это необходимо, и создать отдельные контроллеры для внешнего и внутреннего интерфейса.Все помощники, классы, модели и т. Д. Могут совместно использоваться, если и передний, и внутренний контроллеры находятся в одном приложении.

10 голосов
/ 23 сентября 2011

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

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

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

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

2 голосов
/ 12 ноября 2012

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

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

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

  1. HMVC для модульных разработок wiredesignz
  2. Шаблонный движок для шаблонов от 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

...