CakePHP で日々の作業の大半はコアクラスやメソッドを利用する一方で、CakePHP は手軽に便利なグローバル関数をもっています。これらの関数の多くは、CakePHP クラスで使用するために(モデルやコンポーネントクラスを読み込むなど)ありますが、他にもたくさん配列や文字列を簡単に操作するものもあります。
CakePHP アプリケーションで有効な定数のいくつかも見てみましょう。これらの定数を使用すると、よりスムーズに更新することができますが、CakePHP アプリケーション内のあるファイルやディレクトリを指定する便利な方法もあります。
ここでは CakePHP のグローバルで有効な関数を紹介します。多くは PHP
の長い名前の関数に対する便利なラッパーですが、いくつか(uses()
等)はコードを読み込んだり、他の便利な関数を実行したりすることができます。頻繁に使用するタスクを関数にしたい場合はここが参考になります。
__(string $string_id, boolean $return = false)
この関数は CakePHP
アプリケーションのローカライズを扱います。$string_id
は翻訳用の ID
を規定し、第 2 引数で自動的に文字列を echo
出力するか(デフォルトでは出力されます)、あるいは他のプロセスのために返すか(この振る舞いを有効にするにはブール値
true を渡します)を指定します。
詳細は ローカライゼーションと国際化 の章をチェックしてください。
a(mixed $one, $two, $three...)
ラップ関数を呼び出してパラメータの配列を返します。
print_r(a('foo', 'bar'));
// 出力:
array(
[0] => 'foo',
[1] => 'bar'
)
この関数は、非推奨になりました。バージョン 2.0 では削除されます。代わりに array() を使用してください。
aa(string $one, $two, $three...)
ラップ関数を呼び出してパラメータから構成される連想配列を生成します。
echo aa('a','b');
// 出力:
array(
'a' => 'b'
)
この関数は、非推奨になりました。バージョン 2.0 では削除されます。
am(array $one, $two, $three...)
パラメータとして渡されたすべての配列をマージし、マージした配列を返します。
アプリケーションの config
フォルダにあるファイルを include_once
を使用して読み込むために使います。この関数は、読み込む前にファイルの存在を確認し、結果をブール値で返します。任意の個数の引数を渡すことができます。
例: config('some_file', 'myconfig');
convertSlash(string $string)
文字列のスラッシュをアンダースコアに変換し、最初と最後のアンダースコアを削除します。変換した文字列を返します。
debug(mixed $var, boolean $showHtml = false)
アプリケーションの DEBUG レベルが 0 以外の場合、$var
が出力されます。$showHTML
が true
の場合、データはブラウザで見やすい形式で描画されます。
参照: 基本的なデバッグ
e(mixed $data)
echo()
の便利なラッパーです。
この関数は、非推奨になりました。バージョン 2.0 では削除されます。代わりに echo() を使用してください。
env(string $key)
有効なソースから環境変数を取得します。$_SERVER
あるいは $_ENV
が無効な場合、代替として使用されます。
この関数はサポートしていないサーバでも PHP_SELF や DOCUMENT_ROOT
をエミュレートします。実際に完全なエミュレーションラッパーですので、
$_SERVER
や getenv()
の代わりに常に env()
を使用することは(特にコードを配布する計画がある場合には)よい考えです。
fileExistsInPath(string $file)
渡されたファイルが現在の PHP の include_path 内にあるかをチェックします。ブール値を返します。
h(string $text, string $charset = null)
htmlspecialchars()
の便利なラッパーです。
ife($condition, $ifNotEmpty, $ifEmpty)
三項演算子として使用します。$condition
が空でない場合、$ifNotEmpty
を返します。そうでない場合は
$ifEmpty
を返します。
この関数は、非推奨になりました。バージョン 2.0 では削除されます。
low(string $string)
strtolower()
の便利なラッパーです。
この関数は、非推奨になりました。バージョン 2.0 では削除されます。代わりに strtolower() を使用してください。
pr(mixed $var)
print_r()
の便利なラッパーです。出力の前後に <pre>
タグを付加します。
r(string $search, string $replace, string $subject)
str_replace()
の便利なラッパーです。
この関数は、非推奨になりました。バージョン 2.0 では削除されます。代わりに str_replace() を使用してください。
stripslashes_deep(array $value)
渡された $value
からスラッシュを再帰的に取り除きます。変換した配列を返します。
up(string $string)
strtoupper()
の便利なラッパーです。
この関数は、非推奨になりました。バージョン 2.0 では削除されます。代わりに strtoupper() を使用してください。
uses(string $lib1, $lib2, $lib3...)
CakePHP のコアライブラリ(cake/libs/ にあります)を読み込みます。拡張子 '.php' を除いたライブラリのファイル名を指定します。
この関数は、非推奨になりました。バージョン 2.0 では削除されます。
定数
アプリケーションの絶対パス
APP
ルートディレクトリ
APP_PATH
アプリケーションディレクトリ
CACHE
キャッシュファイルディレクトリ
CAKE
cake ディレクトリ
COMPONENTS
コンポーネントディレクトリ
CONFIGS
設定ファイルディレクトリ
CONTROLLER_TESTS
コントローラテストディレクトリ
CONTROLLERS
コントローラディレクトリ
CSS
CSS ファイルディレクトリ
DS
PHP の定義済み定数 DIRECTORY_SEPARATOR (Linux ではバックスラッシュ"\"、windowsではスラッシュ"/") の省略形です。
ELEMENTS
エレメントディレクトリ
HELPER_TESTS
ヘルパーテストディレクトリ
HELPERS
ヘルパーディレクトリ
IMAGES
画像ディレクトリ
JS
JavaScript ファイルディレクトリ (webroot 内)
LAYOUTS
レイアウトディレクトリ
LIB_TESTS
CakePHP ライブラリテストディレクトリ
LIBS
CakePHP ライブラリディレクトリ
LOGS
ログディレクトリ (app 内)
MODEL_TESTS
モデルテストディレクトリ
MODELS
モデルディレクトリ
SCRIPTS
Cake スクリプトディレクトリ
TESTS
テストディレクトリ (モデル・コントローラなどのテストディレクトリの親ディレクトリ)
TMP
テンポラリディレクトリ
VENDORS
ベンダーディレクトリ
VIEWS
ビューディレクトリ
WWW_ROOT
webroot までのフルパス