Skip to content

Latest commit

 

History

History
106 lines (79 loc) · 3.87 KB

HelloWorld.wiki

File metadata and controls

106 lines (79 loc) · 3.87 KB

  1. summary Hello Worldチュートリアル
  2. labels Sample

Table of Contents

導入

ページからテンプレートに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