BEAR.Saturdayで画面を作るために必要な三つのコンポーネントの概要

はじめに

こんにちは。新卒1年目の岡崎です。エキサイトホールディングス 2023 advent calendar 1日目を担当させていただきます。

qiita.com

BEAR.Saturdayでの開発で苦戦しました。
今回の備忘録では、BEAR.Saturdayで画面を作るために必要な三つのコンポーネントの概要をまとめます。

BEAR.Saturdayとは

BEAR.Saturdayとは、PHPのWebアプリケーションフレームワークです。さらに詳しく知りたい人は、公式ドキュメントをご覧ください。

注意事項

  • BEAR.SaturdayはサポートされているPHPのバージョンが7.4までなので、今後の新規利用は非推奨です。
  • BEAR.Saturdayは既にサポートが終了しています。BEAR.Saturdayの後続として、BEAR.Sundayがリリースされています。

BEAR.Saturdayの概要

クライアントがURLでアクセスし、画面に任意のデータが表示されるまでの流れは、以下のようになります。

  1. クライアント側がURLを使用して、ページにアクセスします。
  2. リソースがデータを取得し、ページにそのデータを返します。
  3. ページがビューにデータを渡し、ビューの内容が画面に表示されます。

BEAR.Saturdayでは、ページ・リソース・ビューの3つのコンポーネントが使われます。
これらの役割について、詳しく紹介していきます。

ページ

ページは、Page.phpが親クラスです。onInjectonInitonOutputの三つの要素で構成されています。

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');

実行順番は、onInjectonInitonOutputの順で実行されていきます。

onInject

依存関係の注入や、クエリパラメーターの受け取りを行います。

onInit

リソースからデータを取得したり、取得したデータを加工したりします。

onOutput

ビューにデータを渡します。

リソース

リソースは、Ro.phpが親クラスです。外部のAPIやDBと繋いで、データの取得・作成・削除・更新を行います。
リソースは二つの要素で構成しますが、取得・作成・削除・更新でそれぞれ要素が異なります。

取得の場合

取得の場合は、onInjectonReadで構成します。onReadは、取得処理を実装します。

class Sample_List extends BEAR_Ro
{
    public function onInject()
    {
        // 処理が記述される
    }

    public function onRead($values)
    {
        // 処理が記述される         
    }
}

作成の場合

作成の場合は、onInjectonCreateで構成します。onCreateは、作成処理を実装します。

class Sample_Create extends BEAR_Ro
{
    public function onInject()
    {
        // 処理が記述される
    }

    public function onCreate($values)
    {
        // 処理が記述される             
    }
}

削除の場合

削除の場合は、onInjectonDeleteで構成します。onDeleteは、削除処理を実装します。

class Sample_Delete extends BEAR_Ro
{
    public function onInject()
    {
        // 処理が記述される
    }

    public function onDelete($values)
    {
        // 処理が記述される             
    }
}

更新の場合

更新の場合は、onInjectonUpdateで構成します。onUpdateは、更新処理を実装します。

class Sample_Update extends BEAR_Ro
{
    public function onInject()
    {
        // 処理が記述される
    }

    public function onUpdate($values)
    {
        // 処理が記述される             
    }
}

ビュー

ビューでは、SmartyというPHPのテンプレートエンジンを使います。Smartyについて詳しく知りたい人は、公式ドキュメントをご覧ください。
ここではページから渡された値の表示を使って、画面上に表示を行います。

最後に

今回は、BEAR.Saturdayで画面を作るために必要な三つのコンポーネントの概要をざっくりと紹介しました。
ここまで読んでいただきありがとうございました。