Я столкнулся с проблемой при программировании в CI 3.0.3 и более поздних версиях. Расширение HMVC. Я загружаю некоторые библиотеки, помощники и многое другое. Библиотека сессий тоже. Теперь у меня есть несколько контроллеров, все работают нормально, кроме одного.
В этом контроллере я использую этот код:
modules::run($module->module . '/' . $module->controller . '/' . $module->method, unserialize($block->configuration));
При использовании этой статической функции я получил ошибку:
Unable to locate the specified class: Session.php
В журнале говорится, что класс Session инициализирован.
INFO - 2015-12-01 09:41:40 --> Session: Class initialized using 'database' driver.
Есть идеи, почему я получил эту ошибку?
РЕДАКТИРОВАТЬ: ———————————————— ————————
Чтобы избежать глупых ответов, как показано ниже …
В CI мы не можем вызывать более 1 контроллера на запрос. Поэтому, чтобы достичь HMVC, мы должны смоделировать контроллеры. Это можно сделать с помощью библиотек или с помощью этого вклада «Модульные расширения HMVC».
Различия между использованием библиотеки и класса HMVC «Модульный HMVC»: 1. Нет необходимости получать и использовать экземпляр CI в классе HMVC. 2. Классы HMVC хранятся в каталоге модулей, а не в каталоге библиотек.
РЕДАКТИРОВАТЬ 2: ———————————————— ———————-
Для дальнейших вопросов:
modules::run();
Просто.
Если вы хотите загрузить контроллер в контроллер, используйте:
Modules::load();
или аутсорсинг Modules::run();
в представление, которое загружается основным контроллером.
Просто.
Других решений пока нет …