После обновления моего сайта с Codeigniter 2 на Codeigniter 3 я получаю эту ошибку:
Сообщение: вызов неопределенной функции SegmentOnce ()
Функция SegmentOnce () определена для хелпера (trunk_helper.php):
if ( ! function_exists('SegmentOnce'))
{ function SegmentOnce($s){
$url = str_replace(ROOT_PATH,"",$_SERVER['REQUEST_URI']);
$pieces = explode("/",$url);
if(isset($pieces[$s])) {
$ret = str_replace("id=","",$pieces[$s]);
return CleanMe($ret);
}
else
{
return 'no_segment';
}
}
На моем контроллере вызывается функция SegmentOnce ():
define("QSTRING", $qstr);
$langs = $this->config->item('my_lang');
$get_lang_from_url = SegmentOnce(1 + ROOT_SEGMENT).'/';
$current_lang_id = 0;
$current_lang = '';
foreach($langs as $val) {
if($get_lang_from_url == $val['name'].'/'){
$current_lang_id = $val['id'];
$current_lang = $val['name'];
$lngth = strlen($val['name']);
$qstr = substr($qstr, $lngth);
if(substr($qstr ,0, 1) == '/' ) {
$qstr = substr($qstr , 1);
}
}
}
Помощники загружаются в начало контроллера:
$this->load->helper('url');
$this->load->helper('text');
$this->load->helper('string');
Я пытался загрузить помощников из autoload.php, но проблема та же.
INFO - 2019-01-16 14:25:05 -> Инициализация класса конфигурации INFO -
2019-01-16 14:25:05 -> Инициализированный класс крючков DEBUG - 2019-01-16
14: 25: 05 -> Поддержка UTF-8 INFO - 2019-01-16 14:25:05 ->
Инициализированная информация класса Utf8 - 2019-01-16 14:25:05 -> Класс URI
Initialized DEBUG - 2019-01-16 14:25:05 -> URI отсутствует. По умолчанию
контроллер установлен. ИНФОРМАЦИЯ - 2019-01-16 14:25:05 -> Класс маршрутизатора
Инициализированный INFO - 2019-01-16 14:25:05 -> Инициализированный класс вывода
INFO - 2019-01-16 14:25:05 -> Инициализированный класс безопасности DEBUG -
2019-01-16 14:25:05 -> Глобальные данные POST, GET и COOKIE очищены
INFO - 2019-01-16 14:25:05 -> Инициализированный INFO класса ввода -
2019-01-16 14:25:05 -> Инициализация языкового класса INFO - 2019-01-16
14: 25: 05 -> Инициализация класса загрузчика INFO - 2019-01-16 14:25:05 ->
Инициализированный класс контроллера INFO - 2019-01-16 14:25:05 -> Помощник
загружено: url_helper INFO - 2019-01-16 14:25:05 -> Помощник загружен:
text_helper INFO - 2019-01-16 14:25:05 -> Помощник загружен:
string_helper ОШИБКА - 2019-01-16 14:25:05 -> Серьезность: ошибка ->
Исключение: вызов неопределенной функции SegmentOnce ()
C: \ xampp \ htdocs \ application \ controllers \ Trunk_Controller.php 54 '
Старый CI2 был основан на PHP5.6. Эта проблема возникла на PHP5.6, а также на PHP7.3 (работает сейчас).
Я использую Xampp для Windows.
Примечание *: я новичок в PHP и MVC.
Спасибо.