エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


CakePHP3でユーザ定義の定数、変数を設定し、読み込む方法解説

   

CakePHP3でユーザ定義の定数、変数を設定し、読み込む

 
CakePHP3でサイトの構築をする際に、プログラム全体で使用する定数や変数を設定し、それを呼び出す方法について解説します。
 
 
小規模なサイトであれば、定数、共通変数は「bootstrap.php」に書いていく方法があります。
ファイルを分ける必要もないため、シンプルな方法です。
その方法が「bootstrap.phpに変数を設定する方法」です。
 
ですが、サイトの規模が大きくなると、設定する定数、共通変数も多くなっていき、「bootstrap.php」が肥大化しますので、定数、共通変数は別のファイルに分けて設定する方法もあります。
その方法が「定数、変数を設定するファイルを別にする方法」です。
 
また、定数、変数を別ファイルにする方法は、もう一つやり方がありまして、それが「定数、変数を設定するファイルを別にする方法・その2」です。
 
 
 

bootstrap.phpに変数を設定する方法

 

「/app/Config/bootstrap.php」に定数、変数を設定

 
「/app/Config/bootstrap.php」に変数、および、定数を設定します。
 

 
定数を定義する「define()」関数は、PHPの標準関数をそのまま利用できます。
 
変数を定義する場合は、「Configure::write()」を利用します。
引数の 1つ目が「変数名」になり、2つ目がその変数に入れる値になります。
 
2つ目の引数に配列、連想配列を設定することで、定義する変数も配列、連想配列にすることができます。
 
配列を設定しているだけですので、下記のような記述の方法も可能です。

 
 
また、下記の様にまとめて複数の変数の設定をすることもできます。

 
 

設定した変数、定数を読み込む方法

 
定数として指定した情報を呼び出す場合は、呼び出すコントローラーの最初に「use」で「Configure」を呼び出します。
(定数だけを読み込む場合は、「use」の設定は必要ありません。)
 

 
 
各定数、変数を読み込む方法は、以下のようになります。
 

 
 
変数は、view側ではそのままは使えませんが、定数は view側でも直接呼び出して使用することができます。
つまり、定数は、テンプレートファイルに下記の様に記述することで、直接呼び出すことができます。

 
 
 

定数、変数を設定するファイルを別にする方法

 
続いて、定数、変数を「bootstrap.php」ファイル以外の別ファイルに設定する方法を解説します。
 

「/app/Config/const.php」ファイルを作成し、定数、変数を設定

 
「/app/Config/」フォルダの中に「const.php」ファイルを新規作成します。
(ファイル名は「const.php」にしていますが、ファイル名の決まりはありませんので、自由なファイル名にしてください。)
 
作成したファイルに下記を記述します。
 

 
ここで設定する定数、変数は、「return」の引数として配列で指定します。
そのため、定数、変数の指定行は配列の値となりますので、それぞれの行の終わりは、「;」ではなく「,」で区切ります。
 
配列で指定しますので、下記の様に記述しても問題ありません。
 

 
ちなみに「return」の記述を忘れた場合は、「Config file "const.php" did not return an array」というエラーが表示されます。
 
 
また、ファイルの最初に「use Cake\Core\Configure;」を記述します。
この記述は忘れがちなので、忘れないようにしましょう。
 
記述を忘れた場合は「Error: Class 'Configure' not found」というエラーメッセージがでますので、記述忘れに気づかないことはありませんが...
 
 

「/app/Config/bootstrap.php」に定数ファイルを読み込む設定

 
設定した「const.php」ファイルを、「bootstrap.php」に読み込む設定を記述します。
 
「/app/Config/bootstrap.php」に下記を記述します。
 

 
記述する場所は分かりやすく「bootstrap.php」ファイルの一番最後などに記述しても OKですが、「bootstrap.php」の 75行目辺りから始まる、他のファイルもロードしている処理に追記する方がより良いでしょう。(下記 5行目、6行目を追加しています。)
 

 
 
「/app/Config/bootstrap.php」には、デフォルトで「use Cake\Core\Configure;」は記載されていますので、改めて追記する必要はありません。
 
 

設定した変数、定数を読み込む方法

 
設定した変数、定数を読み込む方法は、先の「bootstrap.phpに変数を設定する方法」と同じですので、ほぼコピペになりますが以下のようになります。
 
 
定数として指定した情報を呼び出す場合は、呼び出すコントローラーの最初に「use」で「Configure」を呼び出します。
 

 
 
各定数、変数を読み込む方法は、以下のようになります。
 

 
 
 

定数、変数を設定するファイルを別にする方法・その2

 
定数、変数を「bootstrap.php」ファイル以外の別ファイルに設定する方法のその2を解説します。
この方法は、CakePHP2のころも利用できた方法です。
 
 

「/app/Config/const.php」ファイルを作成し、定数、変数を設定

 
「/app/Config/」フォルダの中に「const.php」ファイルを新規作成します。
(ファイル名は「const.php」にしていますが、ファイル名の決まりはありませんので、自由なファイル名にしてください。)
 
作成したファイルに下記を記述します。
 

 
 

「/app/Config/bootstrap.php」に定数ファイルを読み込む設定

 
設定した「const.php」ファイルを、「bootstrap.php」に読み込む設定を記述します。
(この設定方法は、「定数、変数を設定するファイルを別にする方法」と同じです。)
 
「/app/Config/bootstrap.php」に下記を記述します。
 

 
こちらも「定数、変数を設定するファイルを別にする方法」と同じく、「bootstrap.php」の 75行目辺りから始まる、他のファイルもロードしている処理に追記する方がより良いでしょう。(下記 5行目、6行目を追加しています。)
 

 
 

設定した変数、定数を読み込む方法

 
設定した変数、定数を読み込む方法も、「定数、変数を設定するファイルを別にする方法」と同じですので、ほぼコピペになりますが以下のようになります。
 
 
定数として指定した情報を呼び出す場合は、呼び出すコントローラーの最初に「use」で「Configure」を呼び出します。
 

 
 
各定数、変数を読み込む方法は、以下のようになります。
 

 
 

広く知られている方法は「その2」の方である

 
「その2」として紹介した方法が、多くのブログで紹介されている方法です。
ですが、「その2」の方法は、「bootstrap.php」に直接記述しても情報を取得することができず、また、「use Cake\Core\Configure;」を記述していなかったことでうまく動作しませんでした。
 
そのため、エラーを解消するために調べたときに「その1(定数、変数を設定するファイルを別にする方法)」の方法に行きつき、先に「その1」の方の記事を書きました。
 
その後さらに調査した結果、「その2」も上記の手順であれば動作させることもできたため、「その2」の方法も記事に入れることにしました。
 
 
CakePHP3 オフィシャルサイト
https://book.cakephp.org/3.0/ja/development/configuration.html#environment-variables
 
ただ、「その1(定数、変数を設定するファイルを別にする方法)」は、上記のオフィシャルサイトに記載されている方法に基づいて書いています。
CakePHP3では新しい仕組みも増えてきていますので、「その1」の方が活用用途は高いかもしれません。
 
 

CakePHP3の関連記事

CakePHP3にWYSIWYGエディタのCKEditor4を設置、カスタマイズ方法を解説
CakePHP3でページごとに読み込むJavaScript、CSSを変える処理の解説
CakePHP3にデイトピッカー jQuery UI DatePickerを実装する手順の解説
CakePHP3の更新画面でUpload Plugin 3.0を使う方法、viewで使う方法解説・その3
CakePHP3のUpload Plugin 3.0をバリデーションなど実運用向けのカスタマイズ方法解説・その2
CakePHP3の画像、ファイルアップロードプラグインUpload Plugin 3.0の設置解説・その1
CakePHP3でユーザ定義の定数、変数を設定し、読み込む方法解説
CakePHP3のバージョンを指定してインストールする詳細な手順を解説
CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法
CakePHP3チュートリアルで日付と時刻のDateTimeでエラーが出たときの対処方法
 
その他の「CakePHP3」に関する記事一覧
 
 

 - CakePHP 2.x 3.x

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

MySQL、CakePHP 2.3で「tinyint(1)」の Boolean型の動作を再確認

MySQL+CakePHPの環境で「tinyint(1)」を利用する際の動作を検証。「tinyint(1)」の Boolean型について CakePHPでは自動処理が実施されていることを確認しました。

CakePHP 2.3 Search Pluginで検索処理 その1設置方法

CakePHPの検索プラグイン Search Pluginの設置方法と基本的な検索処理の解説です。

CakePHP 2.3 コマンドラインからPHPのシェル実行の方法解説

CakePHP 2.3でコマンドラインから CakePHPで記述した処理を実行する方法を解説します。

CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法
CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法

CakePHP3の標準設定のタイムゾーンは「UTC(協定世界時)」に設定されている。これを日本標準時に変更する方法(app.php、bootstrap.phpの変更方法)の解説。

CakePHP 2.3 テーブルの項目を演算した結果を条件として抽出する方法

アソシエーション(連携)している先のテーブルの項目で演算をする場合の考え方と注意点をサンプルソースを用いて説明しています。分かってしまえば簡単です。

CakePHP3のUpload Plugin 3.0をバリデーションなど実運用向けのカスタマイズ方法解説・その2
CakePHP3のUpload Plugin 3.0をバリデーションなど実運用向けのカスタマイズ方法解説・その2

CakePHP3でファイル、画像をアップロードするプラグイン、upload plugin 3を導入する手順を解説した記事。3部作のその2でバリデーションなどの実用的なカスタマイズ方法を解説。

CakePHP3のCakeDC/Usersのログイン後のリダイレクトを設定解説
CakePHP3のCakeDC/Usersのログイン後のリダイレクトを設定解説

CakeDC謹製Usersプラグインの紹介。ログイン認証後にリダイレクトする先の設定方法についての解説と実運用するために必要なコツを解説。便利な仕組みも仕様の理解があって初めてうまく使いこなせる。

CakePHP 2.3 Model、Controllerの見たい変数の中身をログ出力

CakePHPの Modelや Controllerの変数の中身をログとして出力して見る方法を提供します。

CakePHP3で他のテーブルのマスタテーブルからセレクトボックス(プルダウンリスト)を作る
CakePHP3で他のテーブルのマスタテーブルからセレクトボックス(プルダウンリスト)を作る

他のテーブルのマスタのレコードからプルダウンリストを作成し、選択できるようにするサンプルプログラムと解説。ORMの設定によりデータベースの値を取得し、配列を作成し optionsに与える。

CakePHP3でDocumentRootやwebroot、imgフォルダのURLやドメイン、パスを取得
CakePHP3でDocumentRootやwebroot、imgフォルダのURLやドメイン、パスを取得

URLやドメイン、フォルダへのパスの取得は、ビューではUrlHelperを使い、コントローラーではRouterクラスを使います。第2引数の指定でURLを取得することも可能。