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

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

Zendでのセッションの使い方

2010-12-27 15:31:58 | PHP

なんか、まとめて、ちゃんと書いてないので、ちょこっとめも。

Zendでセッションを使うには、次のことを行う。

(1)Zend/Session.phpをrequire_onceする
(2)Zend_Session::start();
(3)セッションを使うところで、 new Zend_Session_Namespace(ネームスペース名)

たとえば、はじめのページにアクセスしたら、カウントアップするというのをつくるとすると
(セッションでやっているので、セッションが切れたら、0に戻ってしまうので、アクセスカウンタの役は、しない)

index.phtmlで、
<html>
<head>
<title>回数表示</title>
</head>
<body>
<?php echo $this->escape($this->kaisu);?>回目
</body>
</html>

(< > は、本当は半角)
なふうに、kaisuという言葉を表示するとして、

コントローラーのindexController.phpで、
<?php
require_once 'Zend/Controller/Action.php';
require_once 'Zend/Session.php';

Zend_Session::start();

class IndexController extends Zend_Controller_Action
{
    public function indexAction()
    {
      $myNamespace = new Zend_Session_Namespace('indexPage');
      $myNamespace->kaisu++;
      $this->view->assign('kaisu',$myNamespace->kaisu);
    }
}

(< > は、本当は半角なので、置換しないと、コピペしても動かない)

なふうに、indexPageのkaisuに値を保存して、それを表示する。





なお、このように行うと、
ZendFrameworlkでZend_Sessionがつかえません
http://oshiete.goo.ne.jp/qa/3644632.html?order=asc

にあるように、

Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'Session must be started before any output has been sent to the browser; output started in

というエラーになることがあるようだ。
(xamppでインストールすると、なる??)
そのときは、そこにあるように、php.iniのoutput_bufferingの行を、
output_buffering = 4096
にすると、直る??(まだ、未確認)


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

PRINCEモデルは、アジャイル開発の論理的根拠になるかもしれない・・・

2010-12-27 11:50:36 | そのほか

 筑波大(東京の大学院のほう)の中谷先生が提唱する、PRINCEモデルっていうのがある。

 ここ(PDF)に詳しく書いてあるけど、超簡単にまとめてしまうと、

 ・要求獲得は、すべて、はじめの段階に獲得できるわけではない
   →すべての獲得がそろうのは、開発の中期になったり、後期になったりすることもある。

ってことだ。




 これ、考えてみると、確かにそうだ。

 たとえば、「移植性を高める開発を行う」という要望があったとしよう。
 でも、移植性が高まるかどうかは、

   ・なんに、実装するのか(OSは、フレームワークは?)
   ・何に対する移植なのか?

 が決まらないと、移植性を高めるといっても、お題目や判断基準にすぎなくなり、なにをすればいいかは、わからない。
 ところが、OSやフレームワークが決まるのは、理論上は、要求仕様のあと、外部設計ないしは詳細設計の一番初めまでの、いずれかの時点になる(もし、要望の段階で決めた場合、それは制約になる。制約なので、細かく決めなくてもいい。OSはLinuxっていう程度でいい。カーネルやgccのバージョンまで決まってなくてもいい)。

 ってことは、移植性の詳細は決められない(Linuxやgccはバージョンによって、動きが違う。これを要望段階で検討することは、決まってないので、できない)。

 だから、要望をすべて、取得することは、開発初期においては、不可能だ。




 そう考えると、開発初期に全ての要望を決めてしまう、ウォーターフォールは、現実では、不可能ということになる。開発中に要望が出てきて、その要望を、随時取り入れないといけない。そのような開発方法・・・となると、アジャイルしかない。

 という結論になる。

 ということで、

PRINCEモデルは、アジャイル開発の論理的根拠になるかもしれない・・・


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