
はじめに
こんにちは。新卒1年目の岡崎です。エキサイトホールディングス 2023 advent calendar 1日目を担当させていただきます。
BEAR.Saturdayでの開発で苦戦しました。
今回の備忘録では、BEAR.Saturdayで画面を作るために必要な三つのコンポーネントの概要をまとめます。
BEAR.Saturdayとは
BEAR.Saturdayとは、PHPのWebアプリケーションフレームワークです。さらに詳しく知りたい人は、公式ドキュメントをご覧ください。
注意事項
- BEAR.SaturdayはサポートされているPHPのバージョンが7.4までなので、今後の新規利用は非推奨です。
- BEAR.Saturdayは既にサポートが終了しています。BEAR.Saturdayの後続として、BEAR.Sundayがリリースされています。
BEAR.Saturdayの概要
クライアントがURLでアクセスし、画面に任意のデータが表示されるまでの流れは、以下のようになります。
- クライアント側がURLを使用して、ページにアクセスします。
- リソースがデータを取得し、ページにそのデータを返します。
- ページがビューにデータを渡し、ビューの内容が画面に表示されます。

BEAR.Saturdayでは、ページ・リソース・ビューの3つのコンポーネントが使われます。
これらの役割について、詳しく紹介していきます。
ページ
ページは、Page.phpが親クラスです。onInject、onInit、onOutputの三つの要素で構成されています。
class Page_Sample_Index extends BEAR_PAGE
{
public function onInject()
{
// 処理が記述される
}
public function onInit(array $args)
{
// 処理が記述される
}
public function onOutput()
{
$this->display();
}
}
App_Main::run('Page_Sample_Index');
実行順番は、onInject → onInit → onOutputの順で実行されていきます。
onInject
依存関係の注入や、クエリパラメーターの受け取りを行います。
onInit
リソースからデータを取得したり、取得したデータを加工したりします。
onOutput
ビューにデータを渡します。
リソース
リソースは、Ro.phpが親クラスです。外部のAPIやDBと繋いで、データの取得・作成・削除・更新を行います。
リソースは二つの要素で構成しますが、取得・作成・削除・更新でそれぞれ要素が異なります。
取得の場合
取得の場合は、onInjectとonReadで構成します。onReadは、取得処理を実装します。
class Sample_List extends BEAR_Ro
{
public function onInject()
{
// 処理が記述される
}
public function onRead($values)
{
// 処理が記述される
}
}
作成の場合
作成の場合は、onInjectとonCreateで構成します。onCreateは、作成処理を実装します。
class Sample_Create extends BEAR_Ro
{
public function onInject()
{
// 処理が記述される
}
public function onCreate($values)
{
// 処理が記述される
}
}
削除の場合
削除の場合は、onInjectとonDeleteで構成します。onDeleteは、削除処理を実装します。
class Sample_Delete extends BEAR_Ro
{
public function onInject()
{
// 処理が記述される
}
public function onDelete($values)
{
// 処理が記述される
}
}
更新の場合
更新の場合は、onInjectとonUpdateで構成します。onUpdateは、更新処理を実装します。
class Sample_Update extends BEAR_Ro
{
public function onInject()
{
// 処理が記述される
}
public function onUpdate($values)
{
// 処理が記述される
}
}
ビュー
ビューでは、SmartyというPHPのテンプレートエンジンを使います。Smartyについて詳しく知りたい人は、公式ドキュメントをご覧ください。
ここではページから渡された値の表示を使って、画面上に表示を行います。
最後に
今回は、BEAR.Saturdayで画面を作るために必要な三つのコンポーネントの概要をざっくりと紹介しました。
ここまで読んでいただきありがとうございました。