2014年4月4日

CakePHPでどこでも共通関数を定義して使う

 Controller、Modelのどちらでも同じ書き方かつ、単一のソースで共通関数を定義する方法のメモ。
クラスのインスタンス化すらしたくない。すぐに使いたい関数です。

1./app/Vendorに任意のクラスを定義する


Util.php

<?php

class Util {
    public static function plus($val1, $val2) {
        return $val + $val2;
    }

}

2.使いたいところでimportをする

Controllerであれば、

AppControllerクラスの先頭に以下のように定義する

App::import('vendor', 'Util');

Modelであれば、
AppModelクラスの先頭に以下のように定義する

App::import('vendor', 'Util');

3.使う

staticな関数なのでクラス名とメソッド名を「::」(コロン2つで区切る)

$ans = Util::plus(10, 100);



これで沢山のユーティリティ関数を作ることができます。

0 件のコメント:

コメントを投稿