how to require_once in codeigniter

2019-01-17 22:11发布

问题:

I am trying to extend a library in codeigniter. The only way to do so seems to include the original library using require_once then load the extended library using $this->load->library()

right now I have tried

  1. require_once('ion_auth.php');
  2. require_once('home/SITE_NAME/public_html/FOLDER_NAME/application/libraries/ion_auth.php')
  3. require_once('/home/SITE_NAME/public_html/FOLDER_NAME/application/libraries/ion_auth.php')

but unfortunately not luck..... I keep getting this error

Message: require_once(...) [function.require-once]: failed to open stream: No such file or directory

Weird thing is though this works on my local xampp environment but not on the actual server.

回答1:

Use CodeIgniter's built in constant, APPPATH

require_once(APPPATH.'libraries/ion_auth.php');



回答2:

If the library is a codeigniter specific library, as sbaaaang points out, you should use:

$this->load->library('ion_auth');

However, if the library is just a generic PHP class or set of functions, the codeiginter loader may not recognize it. Then you will need to use either one of the generic loading operators (include, include_once, require, require_once), with the APPPATH constant, as also pointed out:

require_once(APPPATH.'libraries/ion_auth.php');


回答3:

In a real server, you should use library's UPPERCASE name. like this:

require_once(APPPATH.'libraries/Ion_auth.php');


回答4:

Do you know that Codeigniter has a loader class?

change this

require_once('/home/SITE_NAME/public_html/FOLDER_NAME/application/libraries/ion_auth.php')

to

$this->load->library('ion_auth');

and be sure your libraries/ion_auth.php file it's a class named `class ion_auth{}`