如何在 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 中包含外部库?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Eclipse 中包含的外部库创建 jar?

在 cpack 输出中包含外部库

在 php codeigniter 中包含另一个页面时,父页面未加载

如何在 codeigniter 中包含 font-awesome

如何在codeigniter中包含嵌套表单

PyCharm 在项目中包含和修改外部库