2011-07-25 13 views
1

CodeigniterでMemcached caching driverを使用しようとすると、重大な問題が発生します。しかし、私はできないのautoloadこの配列のcacheドライバ:

$autoload['libraries'] = array('database', 'session', 'parser', 'common', 'cache'); 

私はページが読み込まれる、cache削除しますが、いない場合は、ページが、私は上のエラー報告があり、設定されていないエラー報告(ノートで空白表示されている場合〜E_ALL)。とにかく

、私はcacheを読み込むことができないので、私は自分の作成したクラスcommonに追加して、これをやってそこからそれをロードします。

class Common extends CI_Controller { 

    function __construct() 
    { 
     parent::__construct(); 

     $this->load->driver('cache'); 
    } 
} 

は今、私はエラーになっています:

を お知らせ

Messag:

A PHPエラーが

重要度を発生しましたE:未定義のプロパティ:追加:: $キャッシュ

がファイル名:コントローラー/ add.php

行番号:33 A PHPのエラーが発生しました

重要度は:

メッセージに注意してください:取得しよう非オブジェクト

ファイル名のプロパティ:コントローラー/ add.php

行番号:33

がこれです

:私はCodeIgniterのアプリケーションのために働くのmemcached必要

class Add extends CI_Controller { 

    public function index() 
    { 
     $data = array('page_title' => 'Add your listing'); 

     $this->load->view('overall_header', $data); 

     $sql = "SELECT item_id, 
         item_name 
       FROM " . ITEMS_TABLE . " 
       WHERE item_visible = 1"; 

     $items_key = md5('query:' . $sql); 

     $result = $this->cache->memcached->save($items_key); // this is line 33 
    } 
} 

、私はgithubからこのカスタムメイドのクラスを使用してみました。

私はmemcachedを動作させるにはどうすればいいですか、私はapplication/config/memcached.phpのすべての設定を正しく設定していますが、それは問題ではないと思います。

答えて

2

まず、PHPにmemcachedライブラリがロードされていることを確認してください。 PHPはmemcacheとmemcachedの2種類のライブラリを使います(最後はDです)。 Codeigniterキャッシュドライバにはmemcached拡張機能が必要です。

このドライバはかなりバグです。私はロード私のコントローラ/モデルでは

<?php 
$config['memcached'] = array(
     'hostname' => '127.0.0.1', 
     'port'  => 11211, 
     'weight' => 1 
); 

を:まず、デフォルトのオプションを使用すると、設定/ memcached.phpファイルを作成する必要がありますので、正しく

にロードされていないこれは私のconfig/memcached.phpがどのように見えるかですこのように、ドライバは:

$this->load->driver('cache', array('adapter' => 'memcached', 'backup' => 'dummy'));

だから、memcachedは利用できない場合は、ダミードライバは、フォールバックとしてロードされます。

CodeIgniter(2.0.2)の現在の安定版リリースでは、ドライバローダクラスに別のbugがあることに注意してください。 Here the patch私は

この修正後、私はドライバが動作して得た

+0

ああ。ちょうど私がMemcacheを使用していることが分かったので、Memcacheの初期サポートはありませんか? – MacMac

+0

いいえ、Cache_memcached.phpはmemcachedを使用します。最終的にmemcache –

+0

Hmmに基づいてあなた自身で書くことができます。良いアイデア。ありがとう、あなたの答えを受け入れました。多分この質問に答えることができますか:http://stackoverflow.com/questions/6809373/remove-index-php-from-url-codeigniter/6810884#6810884ありがとう:-) – MacMac

関連する問題