libro
www.tuyano.com
初心者のためのCakePHP3 プログラミング入門

Webアプリケーション作成の基本を覚えよう (6/6)

作成:2015-08-15 09:12
更新:2015-08-15 09:12

■データベースの設定について

app.phpの設定は、基本的にデフォルトのままでカスタマイズすることはあまりないのですが、一つだけ自分の環境に合わせて書き換えておかなければ使えない部分があります。それは「Datasources」という項目です。

これは、利用するデータベースに関する設定項目です。この部分の値を、自分が利用するデータベースに合わせて書き換えることで、プロジェクト内からデータベースアクセスが行えるようになります。これは、こんな感じになっています。
'Datasources' => 
  [ 'default' => 配列, 'test' => 配列 ]

'default' に設定されているのは、プロジェクトで通常使われる設定です。そして、'test' に設定されるのは、ユニットテストの際に使われる設定です。テストの際にデータの作成や削除などを行う場合、正規で使うデータベースではなく別のデータベースを利用するように、テスト用と通常利用を分けて設定できるようになっているのです。


ここでは非常に多くの項目が用意されていますが、最低限必要となるのはざっと以下のものでしょう。
'default' => [
    'className' => クラス名,
    'driver' => ドライバーの指定,
    'persistent' =>パーシスタンス,
    'host' => ホスト名,
    'username' =>管理者名,
    'password' => パスワード,
    'database' => データベース名,
    'encoding' => エンコーディング,
],

それぞれで使うデータベースに合わせて、これらの値を設定してやれば、プロジェクト内からデータベースを利用できるようになります。これらを設定してhttp://localhost:8765/にアクセスし、当初表示されていたデータベース関連のエラーが表示されなくなれば、問題なく動いています。

これらの設定は、それぞれの環境に合わせて行います。唯一、注意したいのはclassNameと、driverでしょう。classNameは、デフォルトの'className' => 'Cake\Database\Connection'のままにしておくのが基本と考えて下さい。変更はしないように。

driverは、利用するデータベースの種類によって変更します。例えば、以下のような形です。

・MySQLの設定
'driver' => 'Cake\Database\Driver\Mysql'

・SQLiteの場合
'driver' => 'Cake\Database\Driver\Sqlite'

他、hostは、MySQLなどをローカル環境に入れて使うなら、'localhost'にしておきます。他のデータb-すサーバーを利用するならそのホスト名を記述しておけばいいでしょう。


■SQLiteで設定してみる

ここでは、SQLiteを利用してみることにしましょう。SQLiteは、PHP5なら標準でランタイムが入っていますから、別途インストールなどすることなくデータベース利用できます。ここでは、Cドライブの「data」フォルダ内に「samplecake_db」というデータベースファイルを作って利用することにしましょう。下のリスト欄のように'default'の設定を行って下さい。これでデータベースが利用できるようになります。

これで、プロジェクト利用の準備がひと通りできました。次回から実際にプログラミングを始めることにしましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※app.phpのSQLite用設定

'default' => [
    'className' => 'Cake\Database\Connection',
    'driver' => 'Cake\Database\Driver\Sqlite',
    'persistent' => false,
    'username' => 'sa',
    'password' => '',
    'database' => 'c:\data\samplecake_db',
    'encoding' => 'utf8',
    'cacheMetadata' => true,
]
※関連コンテンツ

「初心者のためのCakePHP3 プログラミング入門」に戻る