如何在CodeIgniter中使用require_once

23

我正在尝试在CodeIgniter中扩展一个库。唯一的方法似乎是使用require_once包含原始库,然后使用$this->load->library()加载扩展库。

目前我尝试过:

  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')

但不幸的是, 没有成功……我不断收到这个错误:

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

奇怪的是,这在我的本地xampp环境上可以运行,但在实际服务器上无法运行。


3
可能是如何在CodeIgniter中包含外部库?的重复问题。 - dm03514
尝试过了,不幸的是没有起作用。 - Ahmed-Anas
3个回答

33

使用CodeIgniter内置的常量APPPATH

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


仍然有错误。require_once() [function.require]: 打开 'application/libraries/ion_auth.php' 失败(include_path='.:/usr/lib/php:/usr/local/lib/php'),位于 /home/SITE_NAME/public_html/FOLDER_NAME/application/libraries/auth.php - Ahmed-Anas
3
在这种情况下,我们有两种可能性:1)路径不正确,2)文件不存在。 - igasparetto

9
如果这个库是一个CodeIgniter特定的库,就像sbaaaang指出的那样,你应该使用以下代码:
$this->load->library('ion_auth');

然而,如果这个库只是一个通用的PHP类或一组函数,CodeIgniter加载器可能无法识别它。那么你需要使用其中一个通用的加载运算符(include、include_once、require、require_once),并使用APPPATH常量,正如下面所指出的:

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

2
你知道Codeigniter有一个加载器类吗?
更改此内容。
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{}`

1
这就是我暂时解决问题的方法。然而,使用CodeIgniter的加载器类“loads”库(实例化对象),而我不想“加载”ion_auth库,因为我正在扩展它。因此,我只想加载扩展库。 - Ahmed-Anas
@death_relic0 你知道如何加载扩展库吗?只需调用My_ion_auth.php或查看Codeigniter文档,如何创建自己的库,非常简单... :P - itsme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接