Zend Frameworkでつくるソーシャルゲーム第4回まできました。
ブログで書いたシリーズ物では最長ではないでしょうか(爆)今回はZend FrameworkからDBを利用できるようにします。
ここみたら終わりますが→利用できるリソース-Zend Manual
それはそれという事にして始めましょうか。
まずは設定ファイルをiniからymlに変更します。
(個人的にiniよりymlが好きなので)NetBeansから編集していきますよ!
iniをいじる前にindex.phpを変更します。(別にどっちからでもいいんですが)
23行目あたりのZend_Applicationをインスタンス化しているところにiniファイルを指定しているところがあるのでそこをymlに変えます。//public/index.php
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.yml'
);
index.phpはこれで終わりです。CTRL+Sで保存しておきましょう。
次は「application/configs/application.ini」を編集します。
まずはapplication.iniを右クリックして拡張子をymlに変更します。それから当然中身も書き換えなければならないのでyml風に書き換えます。
CTRL+Hとかうまく使ってささっと書き換えてください。
これを
;application/configs/application.ini
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
こんな感じにします。
#application/configs/application.yml
production:
phpSettings:
display_startup_errors: false
display_errors: false
includePaths:
library: APPLICATION_PATH/../library
bootstrap:
path: APPLICATION_PATH/Bootstrap.php
class: "Bootstrap"
appnamespace: "Application"
resources:
frontController:
controllerDirectory: APPLICATION_PATH/controllers
params:
displayExceptions: false
staging:
_extends: production
testing:
_extends: production
phpSettings:
display_startup_errors: true
display_errors: true
development:
_extends: production
phpSettings:
display_startup_errors: true
display_errors: true
resources:
frontController:
params:
displayExceptions: true
参考
Zend_Config_Yaml
書き換えが正常にできたか確認
これでまずは実行してみてください余分なスペースとかインデントにタブ使ったりするとエラーがでたりします。
:の前にスペースはいってたらダメで5分ハマリました。
前回と同じくWelcome to the Zend Framework!が見えてればミスはないと思われます。
もしエラーがでてたらZendServerのMonitor→LogsとかからPHPエラーログあたりを見て原因をさぐり修正してください。
多分今のところスペルミスとか、無駄なスペースが・・・とかインデントが・・・とかよくあるケアレスミスだと思います。
DBの設定をymlに記入
表示できたらresourceのところにdbの設定を追記します。※今動作しているlocalのサーバはこのブログの通りならdevelopmentですが、developmentはproductionの設定を継承しているのでどちらの箇所でも大丈夫です。
resources:
db:
adapter: Pdo_Mysql
params:
dbname: dragonfantasy
username: dragon
password: fantasy
host: localhost
とかいう具合に。
追記したらまた実行して書き方にミスが無いか確認します。
コントローラからDBを呼び出す
正常なら「application/controllers/IndexController.php」を編集します。indexAction()でDBからデータを取り出してみます。
public function indexAction()
{
$db = $this->getInvokeArg('bootstrap')->getPluginResource('db')->getDbAdapter();
$db->query('set names utf8');
$res = $db->fetchRow('select id,name from dfaccount where id=1');
Zend_Debug::dump($res);
}
どうでしょうか?DBから正常にデータを取り出せましたか!?
できなかった方は画面やlogファイルに書かれたエラーメッセージを元にがんばってみてください!
最後眠くなって来てたので何か書き間違えたかもしれないけれど・・・(ぇ
何か突っ込みどころがあれば気軽にコメントください。
0 件のコメント:
コメントを投稿