- summary Hello Worldチュートリアル
- labels Sample
ページからテンプレートにHello Worldという文字列をアサインして表示する例です。
Note:
リソースは使っていません。
使用するファイルは2つです。一つはhtdocs/以下にある「ページファイル」で、実際のページの処理をページクラスとして実装します。もう一つは「ビューファイル」、Smartyテンプレートファイルです。
BEARはページ指向のフレームワークです。htdocs/にあるページクラスファイルが直接実行されます。イベント駆動でページクラスの処理が実行されページを表示します。
このhello.phpでは初期化onInit()のところで、「Hello Wolrd」という文字列をテンプレートにアサインしています。その後上位クラスがもつonOutput()メソッドがonInit()の後にコールされ、クラス名から自動的に特定したテンプレートに変数がアサインされページが表示しています。
ページファイル htdocs/hello.php
テンプレートファイル App/views/pages/hello.tpl
システム初期化、ページクラス定義、実行の3つ記述がしてあります。これはどのページファイルでも同じです。原則的にページが違うとページクラス定義が変わるだけです。
ページクラスはイベントで呼ばれる処理を記述します。接頭辞がonのメソッドがイベントでコールされます。
2つのPHP Doc型のコメントはPHP Documentor用のコメントです。この形式で書いておきPHP Documentorを使えばページクラスAPIのドキュメントが簡単にできます。ページ単位で処理の内容を把握するのに役立ちます。ファイル全体で1 つ、ページクラスファイルで1つと2つ必要です。ドキュメント不要の場合には省略できます。
App.php内でフレームワークの初期化を行います。全てのページファイルに記述します。
ページクラス定義です。App_Pageはアプリケーション共通ページクラスです。
ページクラスの初期化です。一般的な表示のページではonInit()でリソースアクセス(read)を行い、ページにそのリソースをsetします。表示以外のすべての処理(たとえばフォーム)はここに記述します。
このhello.phpでは最上位のBEAR_Pageクラスで定義されている上記のonOutputハンドラが省略されています。 display()はテンプレートのファイルパスを引数としてもちますが、省略した場合はページクラス名から生成されます。クラス名のアンダースコアを /(スラッシュ)にしたものがテンプレートファイルパスになります。
ページクラス名を指定してBEAR_Main::run()で実行します。
ページファイルは以下の3つで構成されてます。
# App.phpでBEAR初期化 # ページクラスを定義 # 定義したページクラスをrun