SOHOゆいちのサイト
Bsheの利用例なども少し整理していこうと思います。
まずはお決まりのHelloWorldから、
Bsheでテンプレートに値を表示する方法は2つあるため、本日はオーソドックスなコントローラーから実装する方法でやって見ます。
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が生成されます。
サンプルページはこのようなイメージです。
www.bshe.org (created by itassist.info)
早速Hello wordを試してみました。そこでもしかしたら
「あたりまえ」と言われてしまうかもしれない現象を発見しましたので
書いておきます。
デフォルトで読み込まれるファイル(通常はindex.htmlなどと思いますが)
_bshetemplate/index.htmlにhello wordを実装した所
ブラウザーから「http://169.254.0.9/~file/」(各自環境に読み替えてください)
これだと表示されません。これを
「http://169.254.0.9/~file/index.html」とすると表示されます。
そうなると、この機能をTOPページに実装するとユーザーによっては
表示されたりされなかったりするという現象が発生しそうなので
ご報告までにカキコしてみました。
ありがとうございます。
ドキュメントールとでなく
最後が「/」で終わる場合のバグのようです。
(http://169.254.0.9/~fileであれば表示されている)
修正バージョン作成しますのでしばらくご猶予ください。