ロジック クラス
ロジッククラスとは
ロジッククラスは、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パラメータが共有されます。