如何在 CodeIgniter 中包含外部库?
Posted
技术标签:
【中文标题】如何在 CodeIgniter 中包含外部库?【英文标题】:How do I include external Libraries in CodeIgniter? 【发布时间】:2011-01-21 04:46:44 【问题描述】:我是 codeigniter 的新手,我正在尝试将亚马逊的 FPS 集成到我的页面中。有很多库和模型与 Amazon FPS 一起使用,我需要将它们包括在内才能进行适当的调用。
如何将它们包含在 CodeIgniter 中?
我尝试将整个 Amazon 文件夹放在 system/libraries 目录中,然后尝试使用 $this->load->library('Amazon/FPS/Client'); 包含库。 但是,我在那里的相对路径遇到了问题,因为 Client.php 包含语句 require_once ('Amazon/FPS/Interface.php'); ...在同一个文件夹中。
必须有更好的方法来完成这一切 - 任何人都可以帮忙吗?
谢谢!!
【问题讨论】:
【参考方案1】:没有什么可以阻止您直接包含类并使用它们,但是您在普通 PHP 设置中会这样做。如果它在 PHP 中工作,它将在 CodeIgniter 中工作。
include(APPPATH.'libraries/Amazon/FPS/Interface.php');
【讨论】:
当然可以!但我想要更清洁的方式。喜欢$this->load->library()
【参考方案2】:
a3m http://code.google.com/p/a3m/ 的 Peng Kong 有一个很好的插件方式:
例子 twitter_pi.php
require_once(APPPATH.'modules/account/plugins/libraries/jmathai-twitter-async/EpiCurl.php'); require_once(APPPATH.'modules/account/plugins/libraries/jmathai-twitter-async/EpiOAuth.php'); require_once(APPPATH.'modules/account/plugins/libraries/jmathai-twitter-async/EpiTwitter.php');
/* twitter_pi.php 文件结束 / / 位置:./system/application/modules/account/plugins/twitter_pi.php */
在控制器中
$this->load->plugin('twitter'); $twitterObj = new EpiTwitter($this->config->item('twitter_consumer_key'), $this->config->item('twitter_consumer_secret'));
在 Codeigniter 2.0 中存在一个问题,没有插件
【讨论】:
此解决方案已过时。没有插件支持 CodeIgniter。【参考方案3】:哦,是的,codeigniter 很好,还支持许多库,请看这里
http://www.haughin.com/code/
包括这样的亚马逊服务$this->load->library('s3');
【讨论】:
【参考方案4】:@user3526 请注意 $this->load->library('classname') 将创建该加载类的实例,而不仅仅是文件(类)包含。
【讨论】:
以上是关于如何在 CodeIgniter 中包含外部库?的主要内容,如果未能解决你的问题,请参考以下文章
在 php codeigniter 中包含另一个页面时,父页面未加载