ZendFramework2でとりあえず1ページできた!

とりあえず、このページと同等のものを、ZendFramework2+Smarty3で出力することに成功した。

先のエントリから時間が経過していないが、できたのでまとめておく。

ビューの出力にSmarty3を使っているのは旧バージョンも今回も同じなので、Smarty対応のテンプレートファイルは一切変更していない。コントローラ側で違いを吸収することにした。

ルーティングは設定ファイルを、GitHubからスケルトンアプリをダウンロードし、ZendStudioが自動生成したものを編集しまくって、どうしたらいいのかわからなくなってしまったのと、置換してから修正をやりなおした。そしてコントローラが呼び出されるようになった。

データベースはPDOでmySQLをつかっているのであるが、取得したResultSetをそのままビューに渡すと、「カーソルが双方向ではない」というエラーがでる。これは仕様ということなのでどうにもならない。ResultSet取得後、一度の片方向スキャンで、ビューへの出力を完了させるか、別の方法をとるか、ということになる。

そして、ResultSetを行ごとに連想配列として取得し、通常の配列変数へと変換する関数を作成し、その配列をViewまで飛ばすことによって問題は解決した。これは英語版のstackoverflowがググったらヒットしたのでそのままアイデアをもらったものである。それ以外にも、Zend/DbでのSQL文の構築の方法なども、stackoverflow(英語版)にはあったので非常に参考になった。

現在は、URLにパラメータを含めず、プログラム内部で固定の値でやっている部分があるのであるが、これをパラメータ化して動かしていくのが通常の形というか完成形なので、そのように、修正し、ルーティングをして、動作確認をしていくのが、次の作業となる。

ZendFramework2の参考書には会員登録や掲示板などのサンプルがあったので、それらを組み込んでいっても面白いかもしれない。いろいろやってみよう。

コメント