1

我自己尝试将 Rediska(Redis PHP 客户端)安装到我的 codeigniter 应用程序中,但没有任何成功。尝试将其放入 Codeigniter 的插件文件夹时,我会收到大量的“没有这样的文件或目录”错误:

严重性:警告

消息:require_once(Rediska/Connection/Exception.php)[function.require-once]:无法打开流:没有这样的文件或目录

文件名:Rediska/Connection.php

行号:6

有没有人在我之前成功地将 Rediska 安装到 Codeigniter 中?

通过查看 Rediska 安装手册,它似乎是一个简单易用的嵌入式安装:http ://rediska.geometria-lab.ru/documentation/get-started/

因为它现在只是关于基于路径的错误,我假设应该有一些方便的 PHP 设置,我可以更改它以使其全部工作?

谢谢!

4

3 回答 3

2

这是一个简单的与 include_path 相关的问题。换句话说,PHP 无法自动加载您尝试使用的库(在您的情况下为 Rediska)尝试加载的文件。

我假设您已将 Rediska 库目录的内容提取到 Code Igniter 的 system/application/libraries 目录中(因此在库目录中您有 Rediska.php 和 Rediska 目录)。您必须插入以下代码:

ini_set('include_path', ini_get('include_path').';'.APPPATH.'libraries/');

...进入以下位置之一(由您选择哪一个):

  1. 在调用文件最底部的 require_once 函数之前修改主 index.php 文件
    • 进入要使用 Rediska 的(每个)控制器
    • 修改 Rediska.php 文件,并将这一行添加到文件的最顶部(之后的第一行

然后,您应该能够使用以下行(从您的控制器,甚至其他库)加载 rediska:

$this->load->library('rediska');
$rediska = new Rediska();

或者,您可能希望自动加载 Rediska 库,而不是手动加载库。有关更多信息,请参阅http://codeigniter.com/user_guide/general/autoloader.html

希望能帮助到你。

于 2010-05-20T15:56:23.440 回答
1

我没有让 ini_set 解决方案起作用,但是该行的一个变体效果很好: set_include_path(get_include_path() . PATH_SEPARATOR . APPPATH.'libraries/');

于 2010-06-29T09:10:31.687 回答
1

刚刚注意到 phil Sturgeon 关于插件被冗余的注释.....

我目前正在将 Rediska 滚动到 CI 库中,但对于一般用途,您可以使用以下内容来包含基于 CI 应用程序路径的文件

include(APPPATH.'libraries/rediska/Exception.php');

Would include the Exception.php in system/applications/libraries/rediska/

于 2010-06-30T11:01:16.323 回答