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の本を買おうかな。。。
コメントを書く
トラックバック・ピンバック
トラックバックURL
- トラックバックはありません。



コメント