5
votes

Severity: 8192

Message: Methods with the same name as their class will not be constructors in a future version of PHP; CI_Pagination has a deprecated constructor

Filename: libraries/Pagination.php

Line Number: 27

class CI_Pagination {

    var $base_url           = ''; // The page we are linking to
    var $total_rows         = ''; // Total number of items (database results)
    var $per_page           = 10; // Max number of items you want shown per page
    var $num_links          =  2; // Number of "digit" links to show before/after the currently viewed page
    var $cur_page           =  0; // The current page being viewed
    var $first_link         = '‹ First';
    var $next_link          = '>';
    var $prev_link          = '<';
    var $last_link          = 'Last ›';
    var $uri_segment        = 3;
    var $full_tag_open      = '';
    var $full_tag_close     = '';
    var $first_tag_open     = '';
    var $first_tag_close    = ' ';
    var $last_tag_open      = ' ';
    var $last_tag_close     = '';
    var $cur_tag_open       = ' ';
    var $cur_tag_close      = '';
    var $next_tag_open      = ' ';
    var $next_tag_close     = ' ';
    var $prev_tag_open      = ' ';
    var $prev_tag_close     = '';
    var $num_tag_open       = ' ';
    var $num_tag_close      = '';
    var $page_query_string  = FALSE;
    var $query_string_segment = 'per_page';
5
And your question is? - DFriend
What version of CodeIgniter? - Tpojka
The error is pretty self-explanatory. Your old code is not following what is now considered best practice and if you don't update it it will no longer work in future versions of PHP. In this case it's because a class constructor should be called __construct() instead of whatever the class name is. - GordonM

5 Answers

9
votes

Previously we used to declare class constructor using the class name itself

Class A
{

public function a(){
}
}

Now you need to change a() to construct, like this

public function __construct(){
}

And the error will disappear.

4
votes

It is occur with new version of php ,So if you want to remove this error please use _construct() instead of same class name function.

So here you have to user

class CI_Pagination {
 public function  __construct() {
 }
}

instead of

class CI_Pagination {
 public function CI_Pagination () {
 }
}
0
votes
class NewClass{
}
function __construct(){
} //is used inplace of a function named NewClass for constructor

change function name having same name as class to __construct and it will work. Faced such problem in google maps api v3

0
votes

For Codeigniter

First Step:

class MyClass{
 function __construct(){
    // copy your old constructor function code here
 }
}

Next Step(if first step not working): Open application\config\autoload.php and edit

$autoload['libraries'] = array('database', 'session','browser');

to

$autoload['libraries'] = array('database', 'session');

remove 'browser'

-2
votes

Loader.php 414 line, I have removed Ampersent.

$CI->dbutil =& new $class();

to

$CI->dbutil = new $class();

It works fine in php5.x.