Changeset 4549

Show
Ignore:
Timestamp:
06/23/08 07:43:14 (13 months ago)
Author:
moksahero
Message:

finished connection magagement chapter

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/0.11/manual/docs/ja/connection-management.txt

    r4531 r4549  
    1 ++ DSN(データソース名) 
    2 Doctrineを通してデータベースに接続するために、有効なDSN - データソースネーム(data source name)を作成しなければなりません。 
     1++ DSN (データソース名) 
     2 
     3Doctrineを通してデータベースに接続するために、正しいDSN - データソース名(data source name)を作成しなければなりません。 
    34 
    45DoctrineはPDO形式のDSNと同様にPEARとDB/MDB2形式のDSNをサポートします。次のセクションではPEAR形式のDSNを取り扱います。PDO形式のDSNに関して詳細な情報な必要な場合、[[php PDO->__construct()]]をご覧下さい。 
     
    78 
    89||~ DSN part   ||~ 説明 || 
    9 ||  phptype    ||  PHPで使用されるデータベースバックエンド (すなわち、mysql、pgsqlなど) || 
     10||  phptype    ||  PHPで使用されるデータベースバックエンド (mysql、pgsqlなど) || 
    1011||  dbsyntax   ||  SQL構文などに関して使用されるデータベース || 
    11 ||  protocol   ||  使用する通信プロトコル(すなわち、tcp、unixなど) || 
     12||  protocol   ||  使用する通信プロトコル(tcp、unixなど) || 
    1213||  hostspec   ||  ホストを指定します(hostname[:port]) || 
    1314||  database   ||  DBMSサーバー上で使用されるデータベース || 
     
    1516||  password   ||  ログイン用のパスワード || 
    1617||  proto_opts ||  プロトコルと一緒に使用されることがあります || 
    17 ||  option     ||  RIクエリ文字列形式の追加接続オプションです。オプションはアンパサンド(&)によって分割されます。次の表で不完全なオプションのリストが示されています: || 
     18||  option     ||  URIクエリ文字列形式の追加接続オプションです。オプションはアンパサンド(&)によって分割されます。次の表でオプションのリストの一部が記述されています: || 
    1819 
    1920 
     
    2122 
    2223||~ 名前     ||~ 説明 || 
    23 ||  charset  ||  バックエンドの中にはクライアント文字セットの設定をサポートするものがあります。|| 
     24||  charset  ||  バックエンドの中にはクライアントの文字エンコーディングの設定をサポートするものがあります。|| 
    2425||  new_link ||  RDBMSの中には同じホストに複数回接続するときに新しい接続を作成しないものがあります。このオプションは新しい接続を強制することを試みます。 || 
    2526 
     
    3031</code> 
    3132 
    32 多くのバリエーションが許容されます: 
     33以下のような多くのバリエーションが可能です: 
    3334 
    3435<code> 
     
    4748現在サポートされているデータベースのバックエンドは次の通りです:  
    4849 
    49 ||~ ドライバ名 ||~ サポートされデータベース || 
     50||~ ドライバ名 ||~ サポートされデータベース || 
    5051||  fbsql       ||  FrontBase || 
    5152||  ibase       ||  InterBase / Firebird (PHP5が要求されます) || 
    5253||  mssql       ||  Microsoft SQL Server (Sybaseではありません。--with-mssqlでPHPをコンパイルして下さい) || 
    5354||  mysql       ||  MySQL || 
    54 ||  mysqli      ||  MySQL (新しい認証プロトコルをサポート) (PHP 5が要求されます) || 
     55||  mysqli      ||  MySQL (新しい認証プロトコルをサポート) (PHP 5が必要です) || 
    5556||  oci8        ||  Oracle 7/8/9/10    || 
    5657||  pgsql       ||  PostgreSQL  || 
     
    7778|| &          ||  %26      ||  
    7879 
    79 警告  
    80 いくつかの機能はすべてのデータベースバックエンドでサポートされないことにご注意下さい。  
    81   
     80注意 
     81いくつかの機能はすべてのデータベースバックエンドでサポートされないことにご注意下さい。   
    8282 
    8383+++ 例 
     
    114114 
    115115++ 新しい接続を開く 
    116 Doctrineで新しいデータベース接続を開くことはとても簡単です。PDO (www.php.net/PDO)を使用することを望むのであれば、新しPDOオブジェクトを初期化だけです: 
     116 
     117Doctrineで新しいデータベース接続を開くことはとても簡単です。PDO (www.php.net/PDO)を使用することを望むのであれば、新しPDOオブジェクトを初期化するだけです: 
    117118 
    118119<code type="php"> 
     
    123124try { 
    124125    $dbh = new PDO($dsn, $user, $password); 
     126    $conn = Doctrine_Manager::connection($dbh); 
    125127} catch (PDOException $e) { 
    126128    echo 'Connection failed: ' . $e->getMessage(); 
     
    128130</code> 
    129131 
     132注意: Doctrine_Manager::connection()にPDOインスタンスを直接渡しても既に存在するPDOインスタンスには存在しないためDoctrineは接続のためのユーザーネームとパスワードを受け付けません。データベースを作成したり削除するためにDoctrineはユーザーネームとパスワードを必要とします。これを可能にするためにはユーザーネームとパスワードを$connオブジェクトに直接設定する必要があります。 
     133 
     134<code type="php"> 
     135$conn->setOption('username', 'username'); 
     136$conn->setOption('password', 'password'); 
     137</code> 
     138 
    130139++ データベースへの遅延接続 
    131 データベースへのレイジー接続によって多くのリソースを節約できます。これらは実際のデータベース接続が必要ではない多くのページであることがありますので、常にレイジー接続を使用することが推奨されます(このことはDoctrineが必要な時のみデータベースに接続することを意味します)。 
    132  
    133 この機能は例えばページキャッシングを使用するときにとても便利なので、すべてのリクエストごとにデータベース接続が実際には必要ありません。データベースに接続することはとても負荷のかかるオペレーションであることを覚えておいて下さい。 
     140 
     141データベースへのレイジー接続によって多くのリソースを節約できます。実際データベース接続が必要ではないページは多くあるかもしれないので、常にDoctrineが必要な時にだけデータベースに接続するレイジー接続を使用することをお勧めします。 
     142 
     143この機能は例えばページキャッシングを使用するときなどにとても便利で、すべてのリクエストごとにデータベース接続が作られなくなります。データベースに接続することはとても負荷のかかるオペレーションであることを覚えておいて下さい。 
    134144 
    135145<code type="php"> 
     
    145155 
    146156++ 接続を管理する 
    147 最初からDoctrineは複数の接続で動作するように設計されてきました。個別に指定されない限りDoctrineはクエリを実行するために常に現在の接続を使用します。次の例は {{openConnection()}} 秒の引数をオプションの接続エイリアスとして使用します。 
     157 
     158最初からDoctrineは複数の接続で動作するように設計されてきました。個別に指定されない限りDoctrineはクエリを実行するために常に現在の接続を使用します。次の例は {{openConnection()}} の2番目の引数を接続エイリアスのオプションとして使用します。 
    148159 
    149160<code type="php"> 
     
    157168</code> 
    158169 
    159 利便性のために{{Doctrine_Manager}}はスタティックメソッドである{{connection()}}を提供します。このメソッドは引数が与えられたときに新しい接続を開き、引数が指定されないときは現在の接続を返します。 
     170利便性のために {{Doctrine_Manager}} はスタティックメソッドである {{connection()}} を提供します。このメソッドは引数が与えられたときに新しい接続を開き、引数が指定されないときは現在の接続を返します。 
    160171 
    161172<code type="php"> 
     
    179190</code> 
    180191 
    181 {{setCurrentConnection()}}を呼び出して現在の接続を変更できます。 
     192{{setCurrentConnection()}} を呼んで現在の接続を変更できます。 
    182193 
    183194<code type="php"> 
     
    187198</code> 
    188199 
    189 managerオブジェクトをforeach句に渡すだけで開いた接続を反復できます。{{Doctrine_Manager}}は特別な{{IteratorAggregate}} interfaceをimplementすることでこれは可能です。 
     200managerオブジェクトをforeach句に渡すだけで開いた接続を反復できます。{{Doctrine_Manager}} が特別な{{IteratorAggregate}} インターフェースを implements することでこれが可能になっています。 
    190201 
    191202<code type="php"> 
     
    198209 
    199210++ 接続コンポーネントバインディング 
    200 Doctrineによってコンポーネント(= your ActiveRecordクラス)への接続をバインドできます。このことはコンポーネントがクエリを発行するもしくはデータがコンポーネントが指定しているテーブルから取得されるたびにDoctrineはバインドされた接続を使用します。 
     211 
     212Doctrineによってコンポーネント(= ActiveRecordクラス)への接続をバインドできます。このことはコンポーネントがクエリを発行するかデータがコンポーネントが指定しているテーブルから取得されるたびにDoctrineはバインドされた接続を使用します。 
    201213 
    202214<code type="php">