共通の関数を定義する

アプリケーション全体で利用する共通の関数を定義する場合は、以下の手法を推奨します。

Funcs クラス

Funcs クラスを作り、アプリケーション全体で利用する関数をこのクラスに集中的に実装します。
配置場所は、Lambda/libs/Funcs.php です。

Lambda/libs/Funcs.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

class Funcs
{
    static public function getHoge()
    {
        // do something
        return $something;
    }

    static public function convertFuga()
    {
        // do something
        return $something;
    }
}

app.init.php で下記のようにインポートしておき、

1
Factory::import('Funcs');

ロジックやプレップ、あるいはビューで、下記のように利用します。

1
2
$hoge = Funcs::getHoge();
$fuga = Funcs::convertFuga();
 

プレフィクス _ を利用した、グローバル関数

数が少なく、クラスにするほどでない場合は、命名規約として、 _ (アンダースコア)をプレフィクスに持つ関数をアプリケーション全体で利用するグローバル関数と位置づけます。
その上で、app.init.php に実装します。

Labmda/apps/<APP_DIR>/app.init.php

1
2
3
4
5
6
7
8
9
10
11
function _getHoge()
{
    // do something
    return $something;
}

function _convertFuga()
{
    // do something
    return $something;
}

ロジックやプレップ、あるいはビューで、下記のように利用します。

1
2
$hoge = _getHoge();
$fuga = _convertFuga();

[注意]
_v と _ve は、デバッグメソッドとして lmd で予約されているので、関数名として利用できません。
詳しくは デバッグメソッド を参照してください。

 

複数アプリケーション間でグローバル関数を共有したい場合

レアケースですが、複数アプリケーションを同時に運用していて、複数アプリケーション間でグローバル関数を共有したい場合は、
__ (アンダースコア2つ)をプレフィクスとする関数を命名規約として採用します。

その上で、apps.init.php (※ app.init.php でない) に関数を実装します。

Lambda/apps/apps.init.php

1
2
3
4
5
6
7
8
9
function __getHoge()
{
    // do something
}

function __convertFuga()
{
    // do something
}