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