1

自分で Rediska (Redis PHP クライアント) を codeigniter アプリケーションにインストールしようとしましたが、成功しませんでした。Codeigniter の plugins フォルダーに入れようとすると、非常に多くの「そのようなファイルまたはディレクトリはありません」というエラーが表示されます。

重大度: 警告

メッセージ: 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');

system/applications/libraries/rediska/ に Exception.php を含めます。

于 2010-06-30T11:01:16.323 に答える