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フォルダ内を修正してしまったのですが、
修正したくないので、本体修正依頼するか、別の方法で回避したいと考えています。
いきなり長文ですみませんが、アドバイスいただければ幸いです。