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

Wataru Ikeda wataru_ike @ yahoo.co.jp
2007年 4月 27日 (金) 03:28:37 JST


池田と申します。


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


・Factory メソッドでのインスタンス作成は正常。

    $person = DB_DataObject::factory('persons');

・以下のような静的呼び出しと拡張クラスのインスタンス作成では
  クラスディレクトリの場所を見付けてくれない。

    $person = CF_Persons::staticGet(1);
    $person = new CF_Persons;

    Fatal error: Class 'CF_Persons' not found in
    /home/admin/cashflow/index.php on line x

・クラスファイルを直接 require するとインスタンス作成は正常。

    require_once('/home/admin/cashflow/DataObjects/Persons.php');
    $person = CF_Persons::staticGet(1);


以下が DB_DataObject にパースさせる .ini ファイルの内容です。
実際にスクリプトを実行するディレクトリは cashflow で、DataObjects
ディレクトリに createTable.php で作成された拡張クラスが入っています。
include_path に実行ディレクトリへのパスは追加していません。

--
[DB_DataObject]

database        = pgsql://admin:@localhost/cashflow
schema_location = /home/admin/cashflow/DataObjects
class_location  = /home/admin/cashflow/DataObjects
require_prefix  = DataObjects/
class_prefix    = CF_
debug           = 3
ignore_sequence_keys   = "ALL"
quote_identifiers      = 1
generator_strip_schema = 1

--
PEAR は Fedora extras の rpm を利用しています。宜しくお願いします。

Linux 2.6.20-1.2312.fc5
php-5.1.6-1.5
php-pgsql-5.1.6-1.5
php-pear-1.4.9-1.2
php-pear-DB-DataObject-1.8.5-2.fc5



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