[PHP-users 32048] Re: DB_DataObject 拡張クラスの自動ロードについて

ISIGE, Akira xia @ silvia.com
2007年 4月 27日 (金) 12:44:58 JST


いしげ です.

On 2007/04/27 3:28:37 JST,
Wataru Ikeda <wataru_ike @ yahoo.co.jp> wrote:

> DB_DataObject の拡張クラスの自動ロードが思うように動いてくれません。
> 試行錯誤を重ねましたが、以下の設定ではクラスの静的呼び出しと、直接インス
> タンスを作成する際にクラスが Not Found になってしまいます。
> 拡張クラスのディレクトリはどう認識させればいいのでしょうか。

DB_DataObject クラスの factory() メソッドが拡張クラスを見つけるのと,
PHP が CF_Persons クラスの場所を見つけるのは,別の機構です.
いきなり CF_Persons::staticGet(1) をコールした場合,
PHP はそれが DB_DataObject の拡張クラスであることを認識できていません.

これを自動的にロードさせるには,
PHP5 であれば __autoload() を調べるとよいと思います.

DB_DataObject の機能で似たことを行なうならば,
    $person = DB_DataObject::staticGet('CF_Persons', 1);
となると思います.

# 個人的にはこの構文,第一引数が 'persons' でなく 'CF_Persons' なのが
# とても違和感あります……なんでここだけクラス名なんだろう.


--
ISIGE, Akira



PHP-users メーリングリストの案内