TP 5フレームワーク学習心得——(データベースの構成)


前編ではthink PHP 5(以下、TP 5と略す)のインストール方法とディレクトリ構造を簡単に紹介したが、次にTP 5を構成する.
1:データベースの構成
例えば、ログイン機能を書くには、まずデータベース情報を構成します.主に以下の3つの方法があります.modelで2を構成する.コントローラに3を配置する.Database.phpでの構成は、通常、3つ目の方法で詳細な構成情報を使用します.
return [
    //      
    'type'            => 'mysql',
    //      
    'hostname'        => 'localhost',
    //     
    'database'        => 'demo',
    //    
    'username'        => 'root',
    //   
    'password'        => 'root',
    //   
    'hostport'        => '',
    //   dsn
    'dsn'             => '',
    //        
    'params'          => [],
    //          utf8
    'charset'         => 'utf8',
    //       
    'prefix'          => '',
    //        
    'debug'           => true,
    //        :0    (     ),1    (     )
    'deploy'          => 0,
    //                
    'rw_separate'     => false,
    //             
    'master_num'      => 1,
    //         
    'slave_no'        => '',
    //             
    'fields_strict'   => true,
    //        
    'resultset_type'  => 'array',
    //          
    'auto_timestamp'  => false,
    //               
    'datetime_format' => 'Y-m-d H:i:s',
    //       SQL    
    'sql_explain'     => false,
];

typeパラメータはネーミングスペースの完全な定義をサポートし、ネーミングスペースの定義を持たない場合、デフォルトではネーミングスペースとしてthinkdbconnectorが使用されます.アプリケーションが拡張したデータベースドライバを使用すると、次のように構成できます.
//      
'type'        => '\org\db\Mysql',

データベースを表すコネクタは、デフォルトのthinkdbconnectorMysqlではなく、orgdbMysqlクラスをデータベース接続ドライバとして使用します.
各モジュールは独立したデータベース接続パラメータを設定することができ、同じ構成パラメータは繰り返し設定する必要がなく、例えばadminモジュールのdatabase.phpプロファイルで定義:
return [
    //      
    'hostname'    => '192.168.1.100',
    //     
    'database'    => 'admin',    
];

adminモジュールを表すデータベースアドレスは192.168.1.1.1100に変更され、データベース名はadminに変更され、その他の接続パラメータとアプリケーションのdatabase.phpの構成は同じです.V5.0.6+バージョンから、Mysqlの断線再接続メカニズムをサポートし、デフォルトではオフになっています.必要に応じて、データベースプロファイルに追加します.
//       
'break_reconnect' => true,

接続パラメータは、異なる接続に対してデータベースの接続パラメータを追加することができます(具体的な接続パラメータはPHPマニュアルを参照してください).内蔵されているパラメータは以下のとおりです.
PDO::ATTR_CASE              => PDO::CASE_NATURAL,
PDO::ATTR_ERRMODE           => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_ORACLE_NULLS      => PDO::NULL_NATURAL,
PDO::ATTR_STRINGIFY_FETCHES => false,
PDO::ATTR_EMULATE_PREPARES  => false,

Databaseで設定したparamsパラメータの接続構成は、内蔵の設定パラメータとマージされます.長い接続を使用してデータベースの小文字列名を返す必要がある場合は、次のように定義できます.
'params' => [
    \PDO::ATTR_PERSISTENT   => true,
    \PDO::ATTR_CASE         => \PDO::CASE_LOWER,
],

paramsでは、PDOがサポートする接続パラメータを構成できます.リファレンス:http://www.kancloud.cn/manual/thinkphp5/118059#_6