Вызов неопределенной функции SegmentOnce () после обновления с CI 2 до CI3 - PullRequest
0 голосов
/ 16 января 2019

После обновления моего сайта с 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.

Спасибо.

...