Я получаю популярные модульные расширения — HMVC, установленный с
https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc
и установить его с помощью codeigniter 2.2.2 НО когда все должно работать нормально, я получаю эту ошибку
Уровень доступа к MX_Router :: _ set_default_controller () должен быть открытым (как в классе CI_Router) в C: .. \ application \ third_party \ MX \ Router.php в строке 241
Мне пришлось изменить видимость нескольких методов в Router.php, поэтому я изменил следующие методы из protected
в public
чтобы исправить это
_set_default_controller()
_set_request()
_set_default_controller()
и это почти сработало, но теперь я получаю предупреждение над знакомым сообщением Welcome to CodeIgniter
Message: Undefined property: MY_Router::$translate_uri_dashes
поэтому я обернул это свойство вокруг, если не пусто, чтобы обойти это свойство, как так
if(!empty($this->translate_uri_dashes))
{
if ($this->translate_uri_dashes === TRUE)
{
foreach(range(0, 2) as $v)
{
isset($segments[$v]) && $segments[$v] = str_replace('-', '_', $segments[$v]);
}
}
}
и теперь это работает!
есть готовый HMVC-ci, который можно скачать с
но это версия ci 2.0.3, а не ci 2.2.2
если вы поместите основные файлы (MY_Loader и MY_Router) и стороннюю папку (MX) из предварительно сконфигурированной версии ci 2.0.3 (ссылка выше) в соответствующие места в ci 2.2.2, все будет работать нормально.
Других решений пока нет …