Hello Worldの作成(1)  2009年4月30日

Bsheの利用例なども少し整理していこうと思います。

まずはお決まりのHelloWorldから、

Bsheでテンプレートに値を表示する方法は2つあるため、本日はオーソドックスなコントローラーから実装する方法でやって見ます。

HTMLテンプレートの用意

HTMLテンプレートをwww/_bshetemplate/test/hello_world.htmlに以下のように作成しました。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hello world</title>
</head>
<body>
コントローラーからセット:<span key="bshe::test"></span>
</body>
</html>

ここで、spanタグの中に「hello world」と表示したいと思います。「key="bshe::test"」は、変数「test」の値を表示するという意味です。ここでは、spanへセットしていますが、divなどさまざまなタグへ値がセットできます。

また、inputタグやselectタグ、imgのような、範囲を指定するタグ以外ではそれぞれvalueやselectedなど適切な値のセットを行ってくれます。(詳細はマニュアル参照

ルートの定義

test/hello_world.htmlへのアクセスをinit/route.iniファイルに以下の1行を追記することで定義します。

router.test.helloworld.index = "test/hello_world.html"

ここでは、 http://アプリケーションパス/test/hello_world.html へのアクセスを、ZendFrameworkのMVCでいうところの、testモジュールのhelloworldコントローラーのindexアクションへルーティングするという意味です。

コントローラーの作成

アプリケーション独自の実装は、Bsheをインストールしたパスのapplicationディレクトリ以下になります。

application/test/HelloworldController.phpを以下のように作成します。

class Test_HelloworldController extends Bshe_Specializer_Controller_Action_Default
{
    public function indexAction()
    {
        $this->view->test = ‘hello world’;
    }
}

ここで、継承しているBshe_Specializer_Controller_Action_Defaultは、Bsheのさまざまな処理やBshe_Viewをセットしてくれるクラスです。Bsheを利用して開発する場合、たいていこのクラスを継承してコントローラを作成します。

これで

http://アプリケーションパス/test/hello_world.html

へアクセスすると、

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html >
<head >
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title >hello world</title>
</head>
<body >
コントローラーからセット:<span >hello world</span>
</body>
</html>
 

というようなHTMLが生成されます。

サンプルページはこのようなイメージです。

 

このエントリをはてなブックマークに登録 このエントリをBuzzurlにブックマーク Yahoo!ブックマークに登録 このエントリをlivedoorクリップに登録 Deliciousにブックマーク

コメント2件

  1. serion より:

    早速Hello wordを試してみました。そこでもしかしたら
    「あたりまえ」と言われてしまうかもしれない現象を発見しましたので
    書いておきます。
    デフォルトで読み込まれるファイル(通常はindex.htmlなどと思いますが)
    _bshetemplate/index.htmlにhello wordを実装した所
    ブラウザーから「http://169.254.0.9/~file/」(各自環境に読み替えてください)
    これだと表示されません。これを

    「http://169.254.0.9/~file/index.html」とすると表示されます。
    そうなると、この機能をTOPページに実装するとユーザーによっては
    表示されたりされなかったりするという現象が発生しそうなので
    ご報告までにカキコしてみました。

  2. abe より:

    ありがとうございます。
    ドキュメントールとでなく
    最後が「/」で終わる場合のバグのようです。
    (http://169.254.0.9/~fileであれば表示されている)

    修正バージョン作成しますのでしばらくご猶予ください。

コメントを投稿