ロジック クラス

  1. ロジッククラスとは
  2. ロジッククラスの作成
  3. メソッドの準備
  4. LPVパラメータ

ロジッククラスとは

ロジッククラスは、Ziu 独自のLPVワークフローの最初に実行されるモジュール処理です。
一般的なMVCフレームワークのコントローラクラスと同等の機能となります。
URI ルーティングによりマッピングされ、アプリケーションフォルダ名の配下にあるロジッククラスが実行されます。

ロジッククラスの作成

基本的にクラス名はファイル名と連携した定義とします。ファイル名のサフィックスには「.logic.php」を用います。
例えば、URI が /hello の場合、ファイル名は

hello.logic.php

となり、クラス定義は

class Hello
{

    public function index()
    {
        echo "Hello Ziu";
    }

}

となります。
同じ URI でも フォルダを用いてロジッククラスを管理することもできます。
URI ルーティングの Index 自動補完を用いた場合

hello/index.logic.php

となり、クラス定義は

class Hello_Index
{

    public function index()
    {
        echo "Hello Ziu";
    }

}

となります。

メソッドの準備

URI ルーティングによりマッピングされるメソッドを用意します。
Index 自動補完により、いくつかの実行メソッドへのマッピングパターンがあります。

リクエストURI 優先順 ファイルパス クラス名 実行メソッド 引数
/hello 1 hello.logic.php Hello index なし
/hello 2 hello/index.logic.php Hello_Index index なし
/foo/bar 1 foo.logic.php Foo bar なし
/foo/bar 2 foo/bar.logic.php Foo_Bar index なし
/say/hello 1 say.logic.php Say hello なし
/say/hello 2 say/hello.logic.php Say_Hello index なし
/say/hello/world 1 say.logic.php Say hello world
/say/hello/world 2 say/hello.logic.php Say_Hello world なし
初期化メソッド

ロジッククラスには、URI ルーティングによりマッピングされたメソッドが実行される前に、初期化メソッド init() を実行します。

class Hello
{

    public function init()
    {
        〜(初期化処理)〜
    }

    public function index()
    {
        echo "Hello Ziu";
    }

}
初期化メソッドとコンストラクタの注意点

ロジッククラスは、Index 自動補完の機能とPHP4系のコンストラクタの扱いで問題が発生する場合があります。

処理 通常のフロー 問題のフロー
URI /hello /
クラス Hello Index
コンストラクタ 定義なし index() ★ Index 自動補完のメソッドがコンストラクタ扱いになってしまう
初期化メソッド init() init()
実行メソッド index() index()

これを回避する方法は、

  • サイトTOP「/」へのURI ルーティングを設定する (デフォルト : welcome)
  • コンストラクタ「_construct()」メソッドを利用する

で調整することができます。

LPVパラメータ

ロジッククラスからプレップクラス、ビューテンプレートへデータを渡すことができます。
値はサニタイズされずそのまま次の処理に受け渡されます。

パラメータの指定方法
public function index()
{
    $this->params['foo'] = 'bar';
}

params メンバ変数へ配列で値をセットすると自動的にLPVパラメータが共有されます。