アプリケーション全体で利用する共通の関数を定義する場合は、以下の手法を推奨します。
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 } |
次ページ: 文字エンコーディングについて