Мы задали себе тот же вопрос в нашем агентстве, когда впервые решили добавить интерфейс администрирования для наших приложений на основе CI.
В большинстве случаев бэкэнд - это нечто, предназначенное для многократного использования и не имеющее ничего общего с внешним интерфейсом, особенно если их несколько или в нем имеется несколько тем. Поэтому по этой причине мы решили разделить их.
Итак, наша структура выглядит примерно так:
.../application
.../system
.../theme
/frontend
/css
/images
/js
/ci-admin
/css
/images
/js
Папка ci-admin используется во всем приложении для указания файлов, используемых для бэкэнда.
Нам удалось записать несколько помощников, и мы унаследовали все контроллеры администратора от пользовательского класса, который переопределяет / переопределяет функции загрузки, чтобы упростить указание на нужные папки, когда мы запрашиваем действия администратора. Мы также используем помощников для получения правильных URL-адресов, для шаблонов и целей минимизации и т. Д. *
Надеюсь, это поможет.