バンドル

StratdashBundle の機能を使う場合、配下のCore機能の多くのクラスを継承した機能郡でバンドルを作成します。

ですが、ほとんどの継承処理や基本的な処理は SdGenerateBundleCommand により自動的に行われます。

ここでは、自動生成されたコードを前提に、主にWebページを作る際に意識する必要のあるルールや、カスタマイズ箇所・内容 について記載します。

バンドル準備(Symfony2)

バンドルは、app/AppKernel.php 内で AppKernel::registerBundles() に バンドルクラス情報 を追記することで有効になります。

例)

class AppKernel extends Kernel
{
    public function registerBundles(){
        $bundles = array(
            :
            new TinyWorld\StartdashBundle\TinyWorldStartdashBundle(),
            :
        );
        return $bundles;
    }
    :

また、app/config/routing.yml に バンドルルートプレフィックス情報を追加します。

例)

    :
tinyworld_startdash:
    resource: "@TinyWorldStartdashBundle/Resources/config/routing.yml"
    prefix: /startdash/
    :
  • 記号なしリストバンドルルートプレフィックス
    例示中:tinyworld_startdash は好きに付けられますが、基本的に バンドルクラス名のスネークケース です。
    ただし StartdashBundleでのルールは後述します。
  • リソース
    例示中:“@TinyWorldStartdashBundle/Resources/config/routing.yml” は対象バンドル内の routing.yml を指定します。
  • プレフィックス
    例示中:/startdash/ は、対象バンドルにアクセスする場合に先頭に付けるURLを指定します。

これで、バンドル・バンドルルートプレフィックスともに有効になり、ブラウザでアクセスするSymfony2 の バンドルの準備は完了です。

バンドルクラスカスタマイズ(StartdashBundle)

バンドルクラス は バンドルに1つだけある、バンドルを代表するクラスです。

StartdashBundle を継承したクラスでは、バンドル内で共通する(コントローラを跨いだ)情報を保持し、共通する処理を実施します。

バンドル準備が終わったら、StartdashBundle に向けたバンドルクラスカスタマイズを行います。

  • 起動時準備処理
    StartdashBundle::boot() をオーバライドして実施します。
    バンドル初期化時にコールされ、(Requestベースではない)バンドル情報の初期化を行います。
    • 初期情報設定
      バンドル自身、もしくはバンドル内で共通する各種情報を設定する他、名称等が自動生成結果(後述)と異なる場合の補正設定を実施します。
    • バンドル所属ページの登録
      バンドルに所属するページを登録します。
      ページ情報は SdPage で生成し、StartdashBundle::addPage() をコールして登録します。
      ※ 内部では、指定ルート名 に対し、SdPageインスタンス を保持する形で管理されます。
StartdashBundle::boot() は Bundle::boot() をオーラライドしていて Kernel から AppKernel に登録したバンドル順にコールされます。
同じ情報を更新する場合、後に実施した方が有効(上書き)になります。
上記を踏まえ、その初期化処理の適切なタイミングを考慮してください。
※ 他での設定を優先するならコンストラクタで行う、等
* 実行時準備処理\\ StartdashBundle::update() をオーバライドして実施します。\\ 実行コントローラが確定した後、コントローラ準備処理(StartdashController::prepare())前にコールされ、バンドル情報の更新を行います。\\ こちらは現状は特にルールはないため、実装するコントローラの処理によって便利であれば処理を記載します。

※ 実行されるタイミングはStartdashListener の 流れ を参照して下さい。

  • コントローラー/core/バンドル.txt
  • 最終更新: 2021/09/21 19:04
  • (外部編集)