CakePHPでどこでも使える共通関数を定義する

こんにちは!ぐちです。

共通関数

ModelやControllerで共通関数を使いたい場合はAppModelやAppControllerに定義することでそれぞれ子クラスで使うことができますがもっと汎用的などこでも使える共通関数はどこに定義すればいいのでしょうか。

CakePHPの場合はapp/Vendorがそれにあたります。

app/Vendor

サードベンダーのライブラリ等の配置場所になりますがここに独自の共通関数群をおきます。

<?php

class Utils {
    public static function hoge($val) {
        return 'Hello ' . $val . '.';
    }
}

utils.phpをapp/Vendorフォルダに作成して使いたいクラスで下記のようにimportするだけですね。

<?php

App::import(‘Vendor', ‘util');

class IndexController extends AppController {

}

AppControllerでimportしておけば各派生コントローラで意識してimportする必要もなくなるので便利かもしれませんね。Modelでも同じで使いたいクラスもしくはAppModelでimportしておけば自由に使うことができます。

使い方

staticメソッドとして定義しているのでコロン2つでクラスから呼び出すことができます。

$val = Utils::hoge(‘World');