ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

ZendにおけるMVC(Javaフレームワークとの違い)その2

2012-11-06 13:16:42 | PHP
シリーズ「ZendにおけるMVC(Javaフレームワークとの違い)」の続き

前回は、Zendの画面構成を書きました。
 で、そこでの問題点として、


例えば、現在表示している画面が、index/index.phtml画面だったとする。
 この中のフォームタグのactionの指定が、
   ans/kotae
 だったとすると、
   AnsController.phpのAnsControllerクラス内のkotaeメソッドが呼ばれ、
 次に表示される画面は、
   ans/kotae.phtml
 となる。



 つまり、入力内容の判定をする前に、次の画面の行き先を指定する・・・ということは無茶なので(入力値を元にDBを検索して次の画面遷移が決まることもある。会員のランクによって画面が違うようなケース)、何とかしたい。この問題解決方法について考えるのが、今日の御題




■問題点と解決策について

 結局、イベント処理部分と次の画面遷移が分離してないことが問題なので、
 無理やり分離する。



・次の画面遷移はコントロール内のアクションメソッドにおいて
   $this->_forward('アクション名','コントローラー名');
 で指定するとする




 その場合、次の画面名(コントローラー名)がわかっていないと書けない。
 こんな規則を導入する。



・画面名は、コントローラー名のControllerの前の部分と同じで、
 Viewにおいて、 scriptの下に置くフォルダー名と一致する
 (ここまでは、Zendのきまり)

 そして、画面は、かならず、そのフォルダの中のindex.phtmlに記述するものとする
 (ここが今回決めたこと)

 したがって、コントローラーの中にindexActionが存在する



 そして、画面でボタンをクリックすると、イベントが発生する。
 このとき起動されるアクションは、Formタグのactionで指定されることになる。


・画面上のボタン等のイベントは、Formタグのactionによって、行く先のURLが
 指定される。
  (ここまでは、HTML・PHPの規約)
 このとき、action先は=現在の画面/アクション名
 とし、現在の画面のコントローラーに、アクションを記述する。
 そのアクションから、上述の_forwardをして、次の画面に遷移する



こうすると、きれいにいく。




■サンプル

今、2つの画面がある。

・はじめに、この画面が表示される。

これを、画面名indexとしよう
そして、この画面のボタンを、kotaeという名前にする。

・上記の画面のボタンが押されると、この画面が表示される。


これを、画面名ansとしよう
そして、この画面のボタンを、topという名前にする。




■規約を適用した場合のサンプル構成

画面index,ansそれぞれに、コントローラーをつくり、
画面をindex.phtmlに書く、
すなわちViewは、index/index.phtmlとans/index.phtmlの2つ
コントローラーは、IndexController.phpとAnsController.phpの2つで、
indexActionと、ボタンに対するactionができる。

そうすると、ファイル構成としては、こんな感じになる。



controllers
  |-IndexController.php
  |  中で、indexAction
  |     kotaeAction→ansのindexにフォワード
  |
  *-ansController.php
    中で、indexAction
       topAction→indexのindexにフォワード

views
 *-scripts
    |-index
    |  |
    |  *-index.phtml
    |    Formタグのactionでindex/kotaeを指定
    *-ans
      |
      *-index.phtml
        Formタグのactionでans/topを指定






具体的な、ファイルの中身などは、次回以降にみていく。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ケータイ充電をワイヤレス給電するほうが、電気自動車より需要多そうな気が・・

2012-11-06 10:24:52 | Weblog
線を使わないで、電気自動車を充電するワイヤレス給電技術っていうのが
進んでいる。今は、走りながらでも充電できる技術まである。


初めて電気自動車(EV)の走行中充電を可能とする 新技術「移動式ワイヤレス電力伝送」をマイクロ波で実現
http://www.ryukoku.ac.jp/news/detail.php?id=600


2.45GHz帯ということは、無線LAN(2.4GHz)やWiMAX(2.5GHz)などの周波数帯と一緒。
ということは、WiMAXなんかで、充電ができる・・・?

とすれば、電気自動車より、ケータイの充電のほうが、需要が大きいのではないだろうか?
いつでも充電特約?をしておけば、つねにワイヤレス充電して、ケータイの電池切れがなくなるというのは、大きなインパクトありそうな気が・・・

P.S その場合、電力は、太陽光なんかでまかなうんですかね・・?
エネルギー・ハーべスティング

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする