[s2container-php5:94] Re: s2dao.php5 +コメントアノテーションでMethod XXXX does not exist

Yusuke Hata [E-MAIL ADDRESS DELETED]
2007年 4月 29日 (日) 03:08:17 JST


ハタです。
遅くなりました。

件については、 [s2container-php5:86]で行った際の修正部分です。
現在trunkのマニュアルを更新している途中なのですが、__autoloadを追記するとともに
S2Dao_AbstractAnnotationReaderを1.1.1まで戻そうと思います。

影響範囲は特に無いと思います。
主に、autoloadを使っている部分が、class_existsでクラスを探しにいく際に
正しく検査を行ってくれることを期待するだけです。

こちらの修正は、他のものと含め次のリリースで修正される予定です。

以上です。

On Sat, 28 Apr 2007 14:58:25 +0900
SHIMOOKA Hideyuki <[E-MAIL ADDRESS DELETED]> wrote:

> 下岡です。
> 
> ---- kloveさん曰く...
> 
> >klove です。
> >はじめまして。
> 
> こんにちは。はじめまして :-)
> 
> 
> >SHIMOOKA Hideyuki さんは書きました:
> >> s2dao.php5のexamplesにあるコメントアノテーションのサンプルを
> >> 試していますが、
> >>  ReflectionException: Method content does not exist in ...
> >> となってしまいます。
> (snip)
> >s2dao.php5-1.1.2/examples/s2dao_comment/example.inc.php に
> >S2CONTAINER_ANNOTATION_READER 定数を定義すると cd_select1.php
> >が実行できることを確認しました。
> >
> >example.inc.php
> >-------------------------------------------
> >・・・
> >define('S2DAO_PHP5_USE_COMMENT', true);
> >define('S2CONTAINER_ANNOTATION_READER','S2DaoAnnotationReader');
> >・・・
> >-------------------------------------------
> 
> ありがとうございます。
> こちらでも上記で動作することを確認しました。
> 
> 
> >また、s2daoをバージョン1.1.1では問題なく実行できました。
> 
> これも確認しました。正しく動作しています。
> 
> とりあえず、定数を追加することで進めていこうと思います。
> 
> 
> >バージョン1.1.2での変更が関係しているようです。
> 
> ちょっとだけソースを追ってみましたが、1.1.1と1.1.2のdiffを
> 取ってみると
> 
> ----ここから
> 
> $ diff s2dao.php5-1.1.1/S2Dao/s2dao.core.classes.php \
>        S2Dao.PHP5-1.1.2/S2Dao/s2dao.core.classes.php
> 750,751c750,751
> <             if (strcasecmp($propName, $timestampPropertyName) == 0)
> { <                 $this->setTimestamp(time());
> ---
> >             if (strcasecmp($propName, $timestampPropertyName) ===
> > 0) { $this->setTimestamp(date('Y-m-d H:i:s', time()));
> 753c753
> <             } else if (strcmp($propName, $versionNoPropertyName) ==
> 0) { ---
> >             } else if (strcmp($propName, $versionNoPropertyName)
> > === 0) {
> 1158c1158
> <         if(class_exists('S2Container_AnnotationContainer')){
> ---
> >         if(class_exists('S2Container_AnnotationContainer', false)){
> 
> ----ここまで
> 
> S2Dao_AbstractAnnotationReader#setCommentAnnotationHandler
> にあるclass_existsの引数にfalse(autoloadしない)が追加されて
> いたので、trueもしくは引数を削除すると期待する動作をしました。
> 
> #他への影響範囲は分かりませんが。。。
> 
> 
> -- 
> SHIMOOKA Hideyuki
> _______________________________________________
> S2Container-PHP5 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/s2container-php5


-- 
Yusuke Hata <[E-MAIL ADDRESS DELETED]>
blog: http://blog.xole.net/


S2Container-PHP5 メーリングリストの案内