Uploaded image for project: 'S2Dao.PHP5'
  1. S2Dao.PHP5
  2. DAOPHP-13

S2Dao_DBMetaDataFactoryが存在しないクラスをロードしてしまう

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Minor Minor
    • Affects Version/s: S2Dao.PHP5-1.1.1, S2Dao.PHP5-1.1.2, S2Dao.PHP5-1.2.0-beta1, S2Dao.PHP5-1.2.0-beta2, S2Dao.PHP5-1.2.0
    • Component/s: S2Dao.PHP5
    • None
    • Environment:
      S2Dao.PHP5-1.1.1, S2Dao.PHP5-1.2.0-beta1

      see: http://ml.seasar.org/archives/s2container-php5/2007-March/000083.html

      植山です。

      <snip>

      2)S2Dao_MySQLDBMetaDataクラスについて

      S2Base.PHP5のPRADO pluginとS2Dao.PHP5を用いたプログラムを実行したところ、
      下記のようなエラーが発生しました。

      S2Dao_SQLRuntimeException

      Description
      SQLException occured, because [Warning]
      PradoBase::include_once(S2Dao_MySQLDBMetaData.php)
      [<a href='function.PradoBase-include-once'>function.PradoBase-include-once
      </a>]:
      failed to open stream: No such file or directory
      (@line 98 in file
      /private/var/www/public_html/prado/framework/PradoBase.php).

      これは、S2Dao_DBMetaDataFactoryの下記の処理実行時に
      class S2Dao_DBMetaDataFactory {

      const DBMetaData_Suffix = 'DBMetaData';

      public static function create(PDO $db, S2Dao_Dbms $dbms){
      $dbmd = get_class($dbms) . self::DBMetaData_Suffix;
      if(class_exists($dbmd))

      Unknown macro: { return new $dbmd($db, $dbms); }

      return new S2Dao_StandardDBMetaData($db, $dbms);
      }
      }

      S2Dao_MySQLDBMetaDataクラスをロードする必要が出てきて、

      PradoBaseクラスの下記メソッドが実行された際に
      public static function autoload($className)

      Unknown macro: { include_once($className.self}

      S2Dao_MySQLDBMetaData.phpが存在していないために発生したと推測しています。
      (あまり深くソースを追ってませんが・・)

      今は、S2Dao_MySQLDBMetaDataを継承しただけのS2Dao_MySQLDBMetaDataクラスが定義された
      S2Dao_MySQLDBMetaData.class.phpを作成し、エラーが発生しないようにしましたが、本来はどのように
      対処すべきでしょうか?

            Assignee:
            nowel nowel
            Reporter:
            nowel nowel
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: