ウェブデザインやプログラム制作を行うart project teamのブログ

ZendFrameworkでDB接続メモ

ZendFrameworkは自由度が高いせいかいろいろ自分で設定しなきゃいけないんのですが、とりあえずDB接続のめも。
いちいちファイルごとにホストネームとか指定するのは現実的ではないので、application.iniとBootstrap.phpでの接続方法。

application.iniにデータベースの設定情報を記述。

application/configs/application.ini

1
2
3
4
5
6
7
[production]
db.adapter = "PDO_MYSQL"
db.params.host = "localhost"
db.params.username = "root"
db.params.password = "xxxx"
db.params.dbname = "xxxx"
db.params.charset = "utf8"

ホスト名などはサーバごとに違うので注意。ローカルの場合はたいてい「localhost」でいけるはず。
dbnameはデータベース名。

application/Bootstrap.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
  protected function _initDb()
  {
    try{
      $options = new Zend_Config($this->getOptions());
      $dbConfig = $options->db;
      //データベース設定を取得
      $dbConect = Zend_Db::factory($dbConfig->adapter, $dbConfig->params); 
      Zend_Registry::set('db', $dbConect);
      Zend_Db_Table::setDefaultAdapter($dbConect);

      //データベースに接続
      $dbConect->getConnection();
    }catch(Exception $e){
      //エラー時の処理
      die($e->getMessage());
    }
  }
}

これでデータベースに接続できたので間違いないだろう。
エラー処理を本番環境と開発環境で分けたい場合はエラー処理の所を

1
2
3
4
5
if('production' == APPLICATION_ENV){
  //本番環境でのエラーメッセージ
}else{
  //開発環境でのエラーメッセージ
}

とすればいい。
1行目の振り分けはpublic/.htaccessに記述している
SetEnv APPLICATION_ENV xxxxxxxxx
のこと。(xxxxxxxxには production か development が入る)

いろいろググった結果なので、もしもっといい方法があれば教えていただけると助かります。
ZendFrameworkの本を買おうかな。。。

コメント

  1. コメントはまだありません。

コメントを書く

投稿者名
E-Mail

※メールアドレスは公開いたしません
URL
コメント

トラックバック・ピンバック

トラックバックURL

  1. トラックバックはありません。

広告

[プレスブログ]価値あるブログに掲載料をお支払いします。

カテゴリー

アーカイブ

ページのトップへ