如何在codeigniter中要求一次
Posted
技术标签:
【中文标题】如何在codeigniter中要求一次【英文标题】:how to require_once in codeigniter 【发布时间】:2013-08-01 10:00:13 【问题描述】:我正在尝试在 codeigniter 中扩展一个库。这样做的唯一方法似乎是使用require_once
包含原始库,然后使用$this->load->library()
加载扩展库
我已经试过了
require_once('ion_auth.php');
require_once('home/SITE_NAME/public_html/FOLDER_NAME/application/libraries/ion_auth.php')
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 环境,但不适用于实际服务器。
【问题讨论】:
How do I include external Libraries in CodeIgniter?的可能重复 试过了。不幸的是没用 【参考方案1】:使用 CodeIgniter 的内置常量,APPPATH
require_once(APPPATH.'libraries/ion_auth.php');
【讨论】:
仍然是一个错误。 require_once() [function.require]:在 /home/SITE_NAME/ 中打开所需的 'application/libraries/ion_auth.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') 失败public_html/FOLDER_NAME/application/libraries/auth.php 在这种情况下,我们有两种可能:1)路径不正确,2)文件不存在。【参考方案2】:如果该库是特定于 codeigniter 的库,正如 sbaaaang 指出的那样,您应该使用:
$this->load->library('ion_auth');
但是,如果库只是一个通用 PHP 类或一组函数,codeiginter 加载器可能无法识别它。然后,您将需要使用任何一个通用加载运算符(include、include_once、require、require_once)和 APPPATH 常量,正如还指出的那样:
require_once(APPPATH.'libraries/ion_auth.php');
【讨论】:
【参考方案3】:你知道 Codeigniter 有一个loader class吗?
改变这个
require_once('/home/SITE_NAME/public_html/FOLDER_NAME/application/libraries/ion_auth.php')
到
$this->load->library('ion_auth');
and be sure your libraries/ion_auth.php file it's a class named `class ion_auth`
【讨论】:
这就是我暂时解决问题的方法。但是,使用 codeigniter 的加载器类“加载”库(实例化一个对象),我不想“加载”ion_auth 库,因为我正在扩展它。因此,我只想加载扩展库。 @death_relic0 你现在如何加载扩展库?只需调用 My_ion_auth.php 或更好地查看 Codeigniter 文档,如何创建自己的库,就是这么简单......:P以上是关于如何在codeigniter中要求一次的主要内容,如果未能解决你的问题,请参考以下文章
使用 codeigniter ci_marchant_Lib 库的 PayPal 定期付款
如何在codeigniter中使用两个不同的表只显示一次数据