【问题标题】:How to correct PHP path for codeIgniter plugin?如何更正 codeIgniter 插件的 PHP 路径?
【发布时间】:2011-02-21 21:54:26
【问题描述】:

我自己尝试将 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 设置,我可以更改它以使其全部工作?

谢谢!

【问题讨论】:

  • 我建议你不要费心编写插件,“插件”的整个想法在 CodeIgniter 2.0 中被删除了,所以现在你正在制作的东西一旦升级就会消失。
  • 什么版本的 PHP?自动加载会在您的版本中工作吗?

标签: php codeigniter path rediska


【解决方案1】:

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

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

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

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

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

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

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

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

希望对你有帮助。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      将在 system/applications/libraries/rediska/ 中包含 Exception.php

      【讨论】:

        猜你喜欢
        • 2013-03-28
        • 1970-01-01
        • 2015-02-02
        • 2016-04-20
        • 2019-03-08
        • 1970-01-01
        • 2018-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多