グローバル定数およびグローバル関数
CakePHP を使った皆さんの日常のほとんどの業務ではコアクラスやメソッドを用いることになるでしょうが、 ちょっとした役に立つ便利なグローバル関数も CakePHP にはたくさんあります。この関数のほとんどは CakePHP のクラスと一緒に使うためのもの(モデルやコンポーネントクラスのローディングなど)ですが、 他の多くは、配列や文字列の扱いを少し楽にしてくれるものです。
また、CakePHP のアプリケーションで利用可能な定数も同時におさえておきましょう。 これらの定数を用いることはよりスムースなアップグレードの助けになるだけでなく、 CakePHP アプリケーション内の特定のファイルやディレクトリを指し示す便利なやり方でもあります。
グローバル関数
以下、CakePHP の使用可能なグローバル関数です。その多くは、デバッグしたり内容を翻訳したりといった、 機能的に他の CakePHP の単なる便利なラッパーになっています。
この関数は CakePHP のアプリケーションでのローカライズを担います。
$string_id
で翻訳時の ID を定めます。翻訳のために指定される文字列は、sprintf()
関数でのフォーマット文字列としてあつかわれます。 その文字列内のプレースホルダーを置き換えるための、追加の引数を供給できます:text__('You have %s unread messages', h($number));
NOTE
より詳しい情報は 国際化と地域化 のセクションを確認して下さい。
カテゴリは定義済みの名前をそのまま使うのではなく、 I18n クラスの定数で指定されなければなりません。 それらの値は以下の通り:
- I18n::LC_ALL - LC_ALL
- I18n::LC_COLLATE - LC_COLLATE
- I18n::LC_CTYPE - LC_CTYPE
- I18n::LC_MONETARY - LC_MONETARY
- I18n::LC_NUMERIC - LC_NUMERIC
- I18n::LC_TIME - LC_TIME
- I18n::LC_MESSAGES - LC_MESSAGES
メッセージを一つ取得するために、現在のドメインを変更することが可能です。
プラグインを国際化するときに便利です:
echo __d('plugin_name', 'This is my plugin');
メッセージを一つ取得するために、現在のドメインを変更することが可能です。 同時に、カテゴリを指定することも出来ます。
カテゴリは定義済みの名前をそのまま使うのではなく、 I18n クラスの定数で指定されなければなりません。 それらの値は以下の通り:
- I18n::LC_ALL - LC_ALL
- I18n::LC_COLLATE - LC_COLLATE
- I18n::LC_CTYPE - LC_CTYPE
- I18n::LC_MONETARY - LC_MONETARY
- I18n::LC_NUMERIC - LC_NUMERIC
- I18n::LC_TIME - LC_TIME
- I18n::LC_MESSAGES - LC_MESSAGES
複数形のメッセージを一つ取得するために、現在のドメインを変更することが可能です。 同時に、カテゴリを指定することも出来ます。 $domain でドメインを指定し、 $count の数を数え、 $singular と $plural に基いて複数形を正しく処理したメッセージを返します。
カテゴリは定義済みの名前をそのまま使うのではなく、 I18n クラスの定数で指定されなければなりません。 それらの値は以下の通り:
- I18n::LC_ALL - LC_ALL
- I18n::LC_COLLATE - LC_COLLATE
- I18n::LC_CTYPE - LC_CTYPE
- I18n::LC_MONETARY - LC_MONETARY
- I18n::LC_NUMERIC - LC_NUMERIC
- I18n::LC_TIME - LC_TIME
- I18n::LC_MESSAGES - LC_MESSAGES
複数形のメッセージを一つ取得するために、現在のドメインを変更することが可能です。 $domain でドメインを指定し、 $count の数を数え、 $singular と $plural に基いて複数形を正しく処理したメッセージを返します。
context は、同じドメイン内で一意にする翻訳文字列の一意の識別子です。
$count の数を数え、
$singular
と$plural
に基いて複数形を正しく処理した メッセージを返します。また、コンテキストを指定することもできます。 言語によっては、カウントに応じて複数のメッセージに対して複数の形式があります。context は、同じドメイン内で一意にする翻訳文字列の一意の識別子です。
メッセージを一つ取得するために、現在のドメインを変更することが可能です。 同時にカテゴリーとコンテキストも指定できます。
context は、同じドメイン内で一意にする翻訳文字列の一意の識別子です。
複数形のメッセージを一つ取得するために、現在のドメインを変更することが可能です。 $domain でドメインを指定し、 $count の数を数え、 $singular と
$plural
に基いて複数形を正しく処理したメッセージを返します。 言語によっては、カウントに応じて複数のメッセージに対して複数の形式があります。context は、同じドメイン内で一意にする翻訳文字列の一意の識別子です。
メッセージを一つ取得するために、現在のドメインを変更することが可能です。 同時にカテゴリーとコンテキストも指定できます。
context は、同じドメイン内で一意にする翻訳文字列の一意の識別子です。
カテゴリーは定義済みの名前をそのまま使うのではなく、 I18n クラスの定数で指定されなければなりません。 それらの値は以下の通り:
- I18n::LC_ALL - LC_ALL
- I18n::LC_COLLATE - LC_COLLATE
- I18n::LC_CTYPE - LC_CTYPE
- I18n::LC_MONETARY - LC_MONETARY
- I18n::LC_NUMERIC - LC_NUMERIC
- I18n::LC_TIME - LC_TIME
- I18n::LC_MESSAGES - LC_MESSAGES
context は、同じドメイン内で一意にする翻訳文字列の一意の識別子です。
カテゴリーは定義済みの名前をそのまま使うのではなく、 I18n クラスの定数で指定されなければなりません。 それらの値は以下の通り:
- I18n::LC_ALL - LC_ALL
- I18n::LC_COLLATE - LC_COLLATE
- I18n::LC_CTYPE - LC_CTYPE
- I18n::LC_MONETARY - LC_MONETARY
- I18n::LC_NUMERIC - LC_NUMERIC
- I18n::LC_TIME - LC_TIME
- I18n::LC_MESSAGES - LC_MESSAGES
複数形のメッセージを一つ取得するために、現在のドメインを変更することが可能です。 同時にカテゴリーとコンテキストも指定できます。 $domain でドメインを指定し、 $count の数を数え、 $singular と $plural に基いて複数形を正しく処理したメッセージを返します。
context は、同じドメイン内で一意にする翻訳文字列の一意の識別子です。
カテゴリーは定義済みの名前をそのまま使うのではなく、 I18n クラスの定数で指定されなければなりません。 それらの値は以下の通り:
- I18n::LC_ALL - LC_ALL
- I18n::LC_COLLATE - LC_COLLATE
- I18n::LC_CTYPE - LC_CTYPE
- I18n::LC_MONETARY - LC_MONETARY
- I18n::LC_NUMERIC - LC_NUMERIC
- I18n::LC_TIME - LC_TIME
- I18n::LC_MESSAGES - LC_MESSAGES
$count の数を数え、 $singular と $plural に基いて複数形を正しく処理したメッセージを返します。 幾つかの言語が、数に応じた複数形の形式を一つ以上持っています。
パラメータとして渡されてすべての配列をマージして、その結果の配列を返します。
アプリケーション内の
config
フォルダから include_once 経由でファイルをロードするために 使用することが出来ます。この関数はインクルードする前にファイルの存在チェックを行い、ブール値を返します。 任意の数の引数を取ります。例:
config('some_file', 'myconfig');
文字列のスラッシュをアンダースコアに変換し、最初と最後のアンダースコアを削除します。 変換した文字列を返します。
アプリケーションの DEBUG レベルがゼロ以外の場合に $var が出力されます。
$showHTML
が true あるいは null のままであればデータはブラウザ表示に相応しいように描画されます。$showFrom
が false にセットされない場合、それがコールされた行の情報を伴ってデバグ情報の出力が始まります。 デバッグ も参照して下さいもしアプリケーションのデバッグレベルが 0 以外の場合、スタックトレースが出力されます。
可能な限りの環境変数を取得します。もし
$_SERVER
か$_ENV
が使用不可の場合には バックアップとして用いられます。この関数はまた、PHP_SELF と DOCUMENT_ROOT を、非サポートのサーバー上でエミュレートします。 これは完全なエミュレーションラッパーなので、
$_SERVER
やgetenv()
の代わりにenv()
を常に用いることは、(とりわけあなたがコードを配布する予定なら)とても良い考えです。渡されたファイルが、現在の PHP include_path の中にあるかどうかをチェックします。 ブール値の結果を返します。
htmlspecialchars()
の便利なラッパー。
Log::write()
へのショートカット。ドット記法されたプラグイン名をプラグインとクラス名に分離します。 $name にドットが含まれない場合、インデクスが 0 の箇所は null になります。
一般にこんな具合に使われます
list($plugin, $name) = pluginSplit('Users.User');
出力を <pre> タグでラップする機能を追加した
print_r()
の便利なラッパー。与えられた $array を $sortby キーによってソートします。
与えられた
$value
から、再帰的にスラッシュを取り除きます。 変換された配列を返します。
コア定義定数
以下のほとんどの定数はあなたのアプリケーション内部のパスへの参照です。
末尾にスラッシュを含むアプリケーションディレクトリへの絶対パス。
あなたのアプリケーションのディレクトリ名。
app
かも知れません。アプリケーションの Lib ディレクトリへのパス。
キャッシュファイルディレクトリへのパス。 複数サーバーをセットアップした際のホスト間で共有できます。
cake ディレクトリへのパス。
ルートの lib ディレクトリへのパス。
app/Config ディレクトリーへのパス。
Added in version 2.10.0
ルートディレクトリへの、末尾にディレクトリスラッシュを付加したパス。
公開 CSS ディレクトリへのパス。
Deprecated in version 2.4
CSS ファイル・ディレクトリへのウェブパス。
Deprecated in version 2.4
代わりに設定値の
App.cssBaseUrl
を使用して下さい。PHP の DIRECTORY_SEPARATOR (Linux の場合は / Windows の場合は \ のショートカット。
https://example.com
のような完全な URL プリフィクス。Deprecated in version 2.4
この定数は非推奨です。代わりに
Router::fullBaseUrl()
を使用してください。画像の公開ディレクトリへのパス。
Deprecated in version 2.4
画像の公開ディレクトリへのウェブパス。
Deprecated in version 2.4
代わりに設定値の
App.imageBaseUrl
を使用してください。JavaScript の公開ディレクトリへのパス。
Deprecated in version 2.4
JavaScript の公開ディレクトリへのウェブパス。
Deprecated in version 2.4
代わりに設定値の
App.jsBaseUrl
を使用してください。ログディレクトリへのパス。
ルートディレクトリへのパス。
テストディレクトリへのパス。
一時ファイルディレクトリへのパス。
ベンダーディレクトリへのパス。
あなたのウェブルートディレクトリの名前。
webroot
かも知れません。ウェブルートへのフルパス。
時間定義定数
アプリケーションが開始された時点の、浮動小数点マイクロ秒での UNIX タイムスタンプ。
1 と等しい
60 と等しい
3600 と等しい
86400 と等しい
604800 と等しい
2592000 と等しい
31536000 と等しい