'CodeIgniter extend CI_URI undefined method

So I've been in the process of updating someones old CI 1 to CI 3 code. In process. In particular, the URI class extension is not working. I've read the CI documentation switched to __construct() and moved it to the application/core directory. I've checked SO and all cases are correct, but I still get the following error:

Call to undefined method MY_URI::last()

My code below

class MY_URI extends CI_URI {

    function __construct()
    {
        parent::__construct();
    }

    function last()
    {
        return $this->segment(count($this->segments));
    }
}

Thoughts as to why this may be happening with the switch? Checking StackOverflow it said chek your config settings by the config has the correct

$config['subclass_prefix'] = 'MY_';

I'm calling it with:

$lastURI = $this->uri->last();

Update: I've also tried the

 exit('MY_URI.php loaded'); 

trick at the top which seems to work, but it still throws the error when I remark it out and never loads the extension.



Solution 1:[1]

Place your MY_URI.php file inside the application/core/MY_URI.php & update the function like following.

public function last(){      
    return $this->segment($this->total_segments());
}

call it like below

$last = $this->uri->last(); 

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1