導入 (Previous) (Next) 自動生成とデータベーススキーマ

View this page in Last updated: Sun, 05 Oct 2008
English | Dutch | French | German | Hungarian | Japanese | Polish | Russian | Spanish | Plain HTML

設定オプション

設定オプション --  データベースアクセスのためのデフォルト値の設定

設定

DB_DataObject や自動生成されるクラスや定義を使用する前に設定する必要があります。 DB_DataObject の最も簡単な設定法は、 ini ファイルを使用することです (しかしながら、PEAR::Config クラスや独自の設定システムを検討する方を好むかも知れません) 。

DB_DataObject (あるいは、このようなオプションを使用する他のクラス) でこの設定ファイルを使用します。

設定オプション - 必須項目

database DSN

データベースに接続するためのデフォルトの DSN を指定します。

schema_location directory

DB_DataObject のデータベーススキーマファイルがストアされるディレクトリを 指定します。

DB_DataObject は、データベースの詳細 (表やカラム) をこのディレクトリにある ini ファイルにストアします。 この情報は、SQL の組み立ての際、 カラムが文字列型でクオートが必要かどうか、 あるいは数値型 (かつ、チェックされる) かどうかを決定するのに使用されます。一般的には継承した DataObject クラスと同じディレクトリにスキーマをストアします。

require_prefix directory

デフォルトの取り込みパス (include path) への絶対パス、 あるいは相対パスを指定します。 ここには、拡張したクラスが格納されています。

これは、クラスの自動読み込みのために staticGet() メソッドと getLinks() メソッドによって使用されます。

class_prefix string

生成された全てのクラスは、 {class_prefix}ucfirst($table_name) と命名されます。 接頭辞を変更するためにこれを使用してください。 これは、staticGet()getLinks() によって使用されます。

設定オプション - 任意項目

sequence_{table} string

キー定義ファイルを無効とし、表のキーを特定のキーにハードコードするために使用します。 通常、 構成上正しく問い合わせることができないデータベースで使用します。

ignore_sequence_keys string

自動的にシーケンスで埋めるために PEAR の nextval() を使用したくない場合、"ALL" あるいはテーブルのリスト "person,cart,group" とすることで無効にすることができます。

debug integer

デフォルトのデバッグレベルを指定します (デフォルト 0=off、1= 基本的な SQL ロギング、 2=結果ロギング、3=全て) 。

debug_ignore_updates boolean

デフォルトは FALSE 。 セットされた場合、データベースの更新は無効になります。

dont_die boolean

デフォルトは FALSE 。 dataobjects の通常の振る舞いは、 致命的エラーが発生したり、データベースとの接続に失敗する、 あるいはメソッドに無効なオブジェクト型を渡した場合、 PEAR_ERROR_DIE (たとえば、PHP を終了する) となります。 しかし、サーバを生かしておく必要がある場合、 TRUE をセットしてエラーをキャッチし、PEAR エラーハンドラを定義 することで、 'すみません、ただいまメンテナンスのため停止しています' といった親切なメッセージ画面を表示させることができます。

quote_identifiers boolean

SQL 文中の識別子のクオーテーションを強制する場合、 1 をセットします。

注意: これは、 whereAdd()orderBy()、そして and groupBy() といったメソッドに送るデータには影響を及ぼしません。 これらのメソッドは生のデータをそのまま受け取ることを想定しています。

proxy string

クラスや ini クラスの生成を手動でコード生成しなくても オンザフライで行うことが可能になります (現時点でサポートされている値は "full" だけで、 スキーマデータとファクトリを使用する際のデフォルトのクラスを 生成します) 。

設定オプション - 複数のデータベース (任意項目)

database_* string

複数のデータベースがある場合、それぞれのデータベースの DSN を特定するために database_* を使用することができます。

table_* string

複数のデータベースがある場合、 個々の表を異なるデータベースにマップするために table_* を使用することができます。 たとえは、次のような感じです。

設定オプション - ビルダ

class_location directory

クラスを拡張した DataObject を配置するディレクトリを指定します。

クラスの定義の更新/生成の際、 自動クラスビルダによって使用されます。

extends string

基底クラスの名前 (通常、DB_DataObject) を指定します。

全てのクラスに有用なメソッドの共通レイヤーを追加したい場合、 extends_location と extends に別のクラスを指定することができます。 デフォルトは 'DB_DataObject' です。

extends_location directory

The Directory where your Base Class (usually 基底クラス (通常は、DB_DataObject) を配置するディレクトリを指定します。

全てのクラスに有用なメソッドの共通レイヤーを追加したい場合、 extends_location と extends に別のクラスを指定することができます。 デフォルトは 'DB/DataObject.php' です。

generator_class_rewrite boolean

データベースからクラスを再生成するとき、 通常、変数や staticGet などのみが更新されますが、 これをセットすることで拡張フィールドも更新されるようになります。

build_views boolean

Postgres (といくつかの他のもの) で通常のテーブルのように ビューを処理できるようにするかを指定します (たとえば、挿入/更新/削除などがビューでも動作します) 。 データベースの全てのビューに対してファイルを生成するために、 このオプションを使用することができます。

注意: 生成されたクラスで手動でキーを指定する必要があります。 (たとえば、メソッド keys() と sequenceKey() を定義する場合です。 何をキーにすればよいかをビルダは推測することはできません) 。

generator_include_regex string

もし特定のテーブルに対してクラスと ini エントリだけをを生成したい 場合に正規表現を指定します。これにより、 名前が正規表現にマッチするテーブルのみ生成されます。 例えば、 /mytables_.*/ です。

generator_exclude_regex string

もし特定のテーブルに対してクラスと ini エントリだけを を生成したくない場合に正規表現を指定します。これにより、 名前が正規表現にマッチするテーブルのみ生成されません。 例えば、 /private_tables_.*/ です。

generator_strip_schema boolean

PostgreSQL のスキーマの概念は少し変わっていて、 テーブル名の先頭にスキーマ名が付加されるようになっています。 クラスやスキーマの生成の際に、この仕様は邪魔になります。 これを 1 に設定すると、テーブル名からスキーマを取り除きます。

generator_novars boolean

もし True ならば、カラムのためのプライベート あるいは変数定義を出力しませんので、get/set メソッドを オーバーロードすることができるようになります。

generator_add_validate_stubs boolean

もし True ならば、検証メソッドのためのスタブを追加します。

導入 (Previous) (Next) 自動生成とデータベーススキーマ

Download Documentation Last updated: Sun, 05 Oct 2008
Do you think that something on this page is wrong? Please file a bug report or add a note.
User Notes:
Note by: Mike
If you are having problem making this work and are suspecting that
DataObject is not reading or getting the configuration variables that you are feeding it. try setting them like this

$_DB_DATAOBJECT['CONFIG']['database'] = "mysql://user:password@localhost/db";
$_DB_DATAOBJECT['CONFIG']['schema_location'] = "/var/www/html/mydir";
$_DB_DATAOBJECT['CONFIG']['class_location'] = "/var/www/html/mydir";
$_DB_DATAOBJECT['CONFIG']['db_driver'] = "MDB2";
$_DB_DATAOBJECT['CONFIG']['quote_identifiers'] = true;

This is the only way that I was able to get DataObject to work.
It would not read the variables in an ini file or set them using the
PEAR::setstaticproperty() function.
Note by: zac.konopa@gmail.com
fyi - if you are using the include or exclude regex in an .ini file wrap your regex in double quotes. I found that if I was trying to match table 'users' using '/users/' it choked but "/users/" worked fine.
Note by: pierre2543@hotmail.com
The option db_driver can be used to specify the database driver to use. By default it uses the DB package. You can force DB_DataObject to use MDB2 by adding the following to your configuration:

db_driver=MDB2

LPC