Сделайте так get_instance()->{$method}(...).
PS. Сам на CI делал проекты 5 лет, ИМХО cms немного пахнет, раз необходимо напрямую вызвать методы контроллера. Есть же хуки.
Спасибо за совет, сделал
get_instance()->{$method}($URI->rsegments);
но теперь у меня
Fatal error: Call to undefined method CI::index() in /var/www/site/system/core/CodeIgniter.php on line 361
т.е. метода index в самом CI нету, он должен быть в объекте $CI, который
Глянул в сорцы - падает оказывается на вызове, который в CI "изкоробки". Тогда не знаю, видимо действительно какая проблема с конфигурацией сервера и php.
У меня еще пару соображений появилось:
1. Что то с записью данных в header (куки, сессии) - когда вы делаете var_dump, то вывод данных в браузер происходит до всех возможных обработок внутри фреймворка - нет ли в конце страницы Ci-вской ошибки? А если var_dump просто заменить на echo 'foo' ошибка тоже исчезнет?
2. Сервер работает на связке nginx+php ? В любом случае надо посмотреть логи пхп или логи nginx, какая ошибка действительно происходит и увидеть ее расшифроку.
Ни разу не встречал такого.
1. Перенести проект на другой сервер/локальную машину - баг повториться?
2. логи, xdebug
3. Скачать весь исходный код и сравнить с репозиторием CI (не забыв отчекаутиться в релиз: https://github.com/EllisLab/CodeIgniter/releases), внимательно изучить все различающиеся места, в папке system/
1. Не повторяется
2. Логи чисты. Просто все падает. Xdebug запустить нет возможности
3. Мне досталась CMS на основе не самой свежей версии CI, так что в этом нет необходимости
Можно сказать, решил проблему, точнее симптомы, просто выводя 5000 пробелов в начале запуска скрипта.
Костыль еще тот.