[Codeigniter-users] はじめまして

アーカイブの一覧に戻る

Yoshiyuki Okamoto okamo****@gmail*****
2011年 5月 18日 (水) 19:48:55 JST


はじめまして。
岡本と申します。

現在CodeIgniter1.7.2をベースに作られたシステム(WEBとバッチ)を
CodeIgniter2.0.2に置き換える作業をしているのですが、
その中で数点バグ?のような内容を発見しました。

対応はしたのですが、コアに手をいれたくないので、
本体側に修正依頼をしたいのですが
どのようにすればよいか、アドバイスいただけないでしょうか?

---------------------------------------------------------------------------------------------------------------------------------

(その1)Form_validationでコールバックのValidation関数がうまく動かない
(環境)Windows XP 64bit XAMPP 1.7.4  PHP5.3系
(対応)system/libraries/Form_validation.phpを修正して解決。
492c492
<                       if (preg_match("/(callback_\w+)/", implode('
', $rules), $match))
---
>                       if (preg_match("/(callback_.+)/", implode(' ', $rules), $match))

---------------------------------------------------------------------------------------------------------------------------------

(その2)Memcacheのキャッシュドライバー読み込み時にエラーが発生。
(環境)CentOS release 5.4 PHP5.2系
(対応)system/libraries/Driver.phpを修正して解決。
62c62
<                                               $filepath =
$path.'libraries/'.$lib_name.'/drivers/'.$class.EXT;
---
>                                               $filepath = $path.'libraries/'.ucfirst($lib_name).'/drivers/'.$class.EXT;

---------------------------------------------------------------------------------------------------------------------------------

(その3)ControllerでPear::Mailをrequreしたらapacheが強制終了。
        8192番エラー(E_DEPRECATED)発生が関係している???

(環境)Windows XP 64bit XAMPP 1.7.4  PHP5.3系
(対応)system/core/Common.phpを修正して解決。
444c444
<               if ($severity == E_STRICT)
---
>               if ($severity == E_STRICT || $severity == 8192)

---------------------------------------------------------------------------------------------------------------------------------

以下はバグではないと思いますが、改善したい点です。

(その4)Memcacheのキャッシュドライバーのsaveメソッドで値の上書きができない。
    (例)
  $CI->cache->memcached->save('sess_id', 'value1');
       $CI->cache->memcached->save('sess_id', 'value2');

  とした場合に、value2がはいらない様子。

(対応)上書きしたかったのでCache_memcached.phpに下記の修正をしました。
67c67,74
<               return $this->_memcached->add($id, array($data,
time(), $ttl), $ttl);
---
>               if ($this->_memcached->get($id) === FALSE)
>               {
>                       return $this->_memcached->add($id, array($data, time(), $ttl), $ttl);
>               }
>               else
>               {
>                       return $this->_memcached->set($id, array($data, time(), $ttl), $ttl);
>               }

---------------------------------------------------------------------------------------------------------------------------------

いまのところ、上記4点についてsystemフォルダ内を修正してしまったのですが、
修正したくないので、本体修正依頼するか、別の方法で回避したいと考えています。

いきなり長文ですみませんが、アドバイスいただければ幸いです。




Codeigniter-users メーリングリストの案内
アーカイブの一覧に戻る