Yoshiyuki Okamoto
okamo****@gmail*****
2011年 5月 25日 (水) 18:12:10 JST
お世話になっております。 岡本です。 Kenjiさん ご回答ありがとうございます。 > もし、CI 本体に取り込んで欲しい場合は、CI での機能追加のフローは、 > UserVoice http://codeigniter.uservoice.com/forums/40508-codeigniter-reactor > で提案して採用されれば実装されます。 > 軽微な拡張なので、Bitbucket の issue に type を enhancement で登録しても > いいかもしれません。 ⇒こちらアドバイスありがとうございます。 > この issue の status を open にしたということです。 > 報告された内容に同意したので状態を open へ進めたということです。 > issue への登録は多く、invalid (無効) なものも多いので、 > 重要性が低いと、それだけ放置されやすくなると思います。 > なので、修正して欲しいバグ報告はこのように状態を変更したり > 同意するコメントを書き込んだ方が目につきやすくなりますので > 修される可能性が高くなるということです。 なるほど、よくわかりました。ご説明ありがとうございます。 下記の流れで確認してみようと思います。 (1)最新ソース確認 (2)issueの確認、UserVoiceの確認 (3)issueに同意する場合、openにする。 (4)発見したバグが、issueになければ、バグ報告書き込み (5)要望事項が、UserVoiceになければ、機能拡張依頼書き込み このあたり、方向性が見えてきました。 ありがとうございます。 取り急ぎ、お礼まで。 2011年5月24日11:46 Kenji Suzuki <kenji****@gmail*****>: > Kenji です。 > > > On Tue, 24 May 2011 10:00:25 +0900 > Yoshiyuki Okamoto <okamo****@gmail*****> wrote: > >> お世話になっております。 >> 岡本です。 >> >> >> Kenjiさんご返信ありがとうございます。 >> >> >> > \w だとうまく動かない理由がわかりません。 >> > 動作しないサンプルコードはありますでしょうか? >> ⇒こちらですが、下記のようにValidation Rule に[が含まれる場合に\wだとマッチしないようです。 >> callback__check_db[arg1,arg2] > > なるほど。たぶん、現状の仕様から外れるルール名ですね。 > [] で引数を渡すことは想定されていないのでしょう。 > > > もし、CI 本体に取り込んで欲しい場合は、CI での機能追加のフローは、 > > UserVoice http://codeigniter.uservoice.com/forums/40508-codeigniter-reactor > > で提案して採用されれば実装されます。 > > 軽微な拡張なので、Bitbucket の issue に type を enhancement で登録しても > いいかもしれません。 > > >> > https://bitbucket.org/ellislab/codeigniter-reactor/issue/158/cachephp-save-behavior-depending-on-the >> > これですね。バグと思えますので open にしました。 >> ⇒こちらですが、まさにこれですね。 >> 恥ずかしながら open にするというのはどういう意味でしょうか? > > この issue の status を open にしたということです。 > 報告された内容に同意したので状態を open へ進めたということです。 > > issue への登録は多く、invalid (無効) なものも多いので、 > 重要性が低いと、それだけ放置されやすくなると思います。 > > なので、修正して欲しいバグ報告はこのように状態を変更したり > 同意するコメントを書き込んだ方が目につきやすくなりますので > 修される可能性が高くなるということです。 > > >> 追加ですが、system/libraries/Cache/Cache.phpで >> ドライバをmemcached、バックアップアップドライバをfileに指定して、memcachedモジュールのない環境でキャッシュライブラリを使うとエラーとなりました。こちらもバグかと思います。取り急ぎローカル修正済ですが、こちらも共有しますね。 >> >> system/libraries/Cache/Cache.php の マジックメソッド >> public function __get($child) >> { >> $obj = parent::__get($child); >> >> if ( ! $this->is_supported($child)) >> { >> $this->_adapter = $this->_backup_driver; >> $obj = parent::__get($this->_backup_driver); >> //この行追加。追加しないと$objがNULLで、後続処理で落ちる >> } >> >> return $obj; >> } > > これはバグのようですね。 > > >> > systemフォルダ内を修正したくない場合は、appliecation/ 以下の同じ >> > フォルダで継承 >> > >> > http://codeigniter.jp/user_guide_ja/general/core_classes.html >> > http://codeigniter.jp/user_guide_ja/general/creating_libraries.html >> > >> > ですが、ドライバや core/Common.php は継承したりオーバライドできなかった >> > と思います。 >> ⇒こちらですが、ありがとうございます。 >> 今回思ったのですが、オーバーライドたくさんあるとバージョンアップの時に大変ですね。 >> なので、2系にバージョンアップしてできるだけCI標準API使うようにシステム修正しているところです。 > > まあ、オーバーライドが多くなればバージョンアップ時に、検証したりテストしないと > いけない手間は増えるでしょうね。ちょっとしたメソッド追加程度であれば、実際、 > ほとんど問題はないとは思いますが。 > > >> ただし、Form_validationクラスについてはPOST値に依存していて、バッチ等のファイル入力で使えない為、大幅に書き換えましたが。 > > 大幅に違うなら別のライブラリにした方がいいかもしれません。 > > > // Kenji > > > >> 以上です。 >> 取り急ぎお礼と回答まで。 >> >> >> >> >> >> 2011年5月23日19:25 Kenji Suzuki <kenji****@gmail*****>: >> > Kenji です。 >> > >> > >> > On Wed, 18 May 2011 19:48:55 +0900 >> > Yoshiyuki Okamoto <okamo****@gmail*****> wrote: >> > >> >> はじめまして。 >> >> 岡本と申します。 >> >> >> >> 現在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)) >> > >> > \w だとうまく動かない理由がわかりません。 >> > 動作しないサンプルコードはありますでしょうか? >> > >> > 他のプラットフォームでも同様に動作しないなら、バグと言えるかもしれませんの >> > 本家にバグ報告してみるということも考えられますが。 >> > >> > >> >> --------------------------------------------------------------------------------------------------------------------------------- >> >> >> >> (その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; >> > >> > 最新のコード <https://bitbucket.org/ellislab/codeigniter-reactor> では、48行目で >> > >> > $lib_name = ucfirst(strtolower(str_replace('CI_', '', $this->lib_name))); >> > >> > となっており、修正されているのではないでしょうか? >> > >> > >> >> --------------------------------------------------------------------------------------------------------------------------------- >> >> >> >> (その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) >> > >> > Apache が強制終了するのは、たぶん PHP のバグでしょうね。CI が原因とは言えないでしょうから、 >> > CI のバグとするのは無理があるように思います。 >> > >> > E_DEPRECATED が発生するライブラリの方が問題とも言えると思います。 >> > >> > >> >> --------------------------------------------------------------------------------------------------------------------------------- >> >> >> >> 以下はバグではないと思いますが、改善したい点です。 >> >> >> >> (その4)Memcacheのキャッシュドライバーのsaveメソッドで値の上書きができない。 >> >> (例) >> >> $CI->cache->memcached->save('sess_id', 'value1'); >> >> $CI->cache->memcached->save('sess_id', 'value2'); >> >> >> >> とした場合に、value2がはいらない様子。 >> > >> > https://bitbucket.org/ellislab/codeigniter-reactor/issue/158/cachephp-save-behavior-depending-on-the >> > これですね。バグと思えますので open にしました。 >> > >> > >> >> (対応)上書きしたかったので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フォルダ内を修正してしまったのですが、 >> >> 修正したくないので、本体修正依頼するか、別の方法で回避したいと考えています。 >> > >> > systemフォルダ内を修正したくない場合は、appliecation/ 以下の同じ >> > フォルダで継承 >> > >> > http://codeigniter.jp/user_guide_ja/general/core_classes.html >> > http://codeigniter.jp/user_guide_ja/general/creating_libraries.html >> > >> > ですが、ドライバや core/Common.php は継承したりオーバライドできなかった >> > と思います。 >> > >> > >> > // Kenji >> > >> > >> >> いきなり長文ですみませんが、アドバイスいただければ幸いです。 >> >> >> >> _______________________________________________ >> >> Codeigniter-users mailing list >> >> Codei****@lists***** >> >> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >> > >> > _______________________________________________ >> > Codeigniter-users mailing list >> > Codei****@lists***** >> > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >> > >> >> _______________________________________________ >> Codeigniter-users mailing list >> Codei****@lists***** >> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users > > _______________________________________________ > Codeigniter-users mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >