BEARのアプリケーションをプロジェクトフォルダに機能別に構成されています。このうちhtdocs/だけは何処に配置してもかまいません。
BEARアプリケーションのディレクトリマップ。
- Ro(リソースフォルダ)
- output(HTTPアウトプットフォルダ)
- views(テンプレート)
- htdocs (htmlドキュメントルート)
アプリケーションクラスにはファイルの配置に命名規則があります。例えば、App_Form_UserクラスはApp/Form/User.phpに配置します。クラスオートローダーが機能し、include/require不要でクラスが使えます。
フォルダ名が大文字で始まるものはクラスファイル用フォルダです。
BEARやアプリケーション全体の初期化を行います。全てのクラスのデフォルト値($app)を指定しBEAR::init($app);で初期化します。
アプリケーション固有のDBのメソッドやプロパティを記述します。デフォルトではMDB2を使用していますが他のDBハンドラでもかまいせん。
リソースオブジェクト(Ro)の親クラスです。
アプリケーションページクラスです。ページ全体で使用する機能は、処理内容を記述します。コンストラクタやデストラクタはページコンストラクタ、ページデストラクタとして機能します。
デバック/ライブ以外にも様々な動作モードを持たせることができます。例えば「デバックモードで実行しているのだがDBはライブのものを見る」などです。App.phpでモードを読み込み、動作を決定しています。
最初のサンプルではbearmode
を.htaccessやphp.iniなどでbearmodeの値を指定します。0はライブで1より大きい数字で開発や開発モードのサイトになります。
htaccessの記載例
# 0:Live >1:Debug
SetEnv bearmode 2
Appクラスのコンストラクタでこの値を読み、DBのDSNや、App::$debug、キャッシュサーバーURLなどを上書きして動作モードを変えます。
.htaccessに表記するのが便利です。サイト毎に別のものを用意してsvnリポジトリなどには.htaccessをignoreしておけば同じプロジェクトファイルでサイトによって違う動作が実現します。