Давайте попробуем прояснить некоторые ваши сомнения по этому поводу.
1) Вызов метода контроллера из другого контроллера невозможен, и, кстати, это имеет какое-то значение.
Контроллердолжен получить действие от URL-адреса (который CI направляет на правильный контроллер для задачи) и на основании этого решить, какую модель и какой метод модели необходимо вызвать для разработки запрошенных данных.
Затем модель передает результат этой разработки контроллеру, который, в свою очередь, решает, какой вид передать эти результаты.
Представление, в конце концов, структурировано так, чтобы получать эти данные и отображать их.
Так что, как вы можете видеть, вызов метода контроллеров из другого контроллера - это чушь, это было бы какна страницу и найти другую;если вы хотите передать другому контроллеру запрос ... ну, для этого есть редирект.
Если вы обнаружите, что через несколько секунд у вас будут одинаковые функции, подумайте дважды:
- Что такое функциональность?Вы имеете в виду что-то вроде «показывать сообщения» в «архиве» контроллера и «показывать сообщения» в «новостях» контроллера?они вряд ли имеют одинаковую функциональность;возможно, они могут делиться представлениями или моделями, но это все.
- Для функций, которые не относятся к URL-адресам, но требуют некоторой дальнейшей проработки (что может быть неправильно делать в моделях) и тем не менее вызываются вконтроллер, у вас есть библиотека вместоПодумайте о библиотеке «form_validation», которая вызывается в методе контроллера, но имеет свои специфические (и инкапсулированные) функции.Или библиотека "сеанса" или библиотека "аутентификации"
2) Для создания панели администратора проще всего: создать контроллер "администратора" (который затем доступен для www.mysite.com / index.php / admin) и поместите все административные действия в его методы: create_page (), edit_page (), manage_users (), что угодно.Чтобы люди не могли получить к нему свободный доступ, вам нужно создать систему аутентификации, которая в простейшем и простом понимании может быть проверкой того, установлен сеанс или нет (может быть, проверка выполняется во время __construct ()).
Но вы можете найти хорошие библиотеки Auth, которые уже созданы, такие как Ion Auth или Tank Auth (2 наиболее популярные, насколько мне известно)
Надеюсь, теперь все немного яснее.См. Также комментарий Interstellar_Coder к этому ответу, если вы заинтересованы в модульном подходе HMVC.