CakePHP でグローバル変数を作成したいと思います。app_controller.php で何かを定義すると
var $varName
アクセスできます
$this->varName
どのコントローラーからでもアクセスできますが、モデルからはアクセスできません。
モデルからアクセスできるグローバル変数を作成するにはどうすればよいですか?
$varName の値は実行時までわからないため、bootstrap.php はオプションではないと思います。
CakePHP でグローバル変数を作成したいと思います。app_controller.php で何かを定義すると
var $varName
アクセスできます
$this->varName
どのコントローラーからでもアクセスできますが、モデルからはアクセスできません。
モデルからアクセスできるグローバル変数を作成するにはどうすればよいですか?
$varName の値は実行時までわからないため、bootstrap.php はオプションではないと思います。
CakePHP の新しいConfigure クラスを使用して、アプリケーションまたはランタイム固有の値を保存および取得できます。注意してください。このクラスには何でも格納でき、コードの他の部分で使用できます
グローバル変数を保存するには、構成クラスを使用します。例えば:
Configure::write('Company.name','Pizza, Inc.');
コードの任意の場所で後で変数を読み取るには、次を使用します。
Configure::read('Company.name'); //yields: 'Pizza, Inc.'
グローバル定数を保存するための推奨ファイルはapp/config/bootstrap.phpにあります
詳細については、
クラスの設定 - クラス CakePhpの設定 を参照してください。またはブートストラップに関するセクション 3.4.7
アプリのグローバル関数と変数は app/config/bootstrap.php で定義できます
詳細については、http://book.cakephp.org/view/48/Bootstrapping-CakePHPを参照してください。
app/config/ ディレクトリの bootstrap.php で定数を定義できます。これは、任意のコントローラーまたはビューでグローバルに使用できます。
ホント、なんでそんなことするの?モデルは、コントローラーが存在することを認識してはなりません。
ビジネス (モデル) オブジェクトの場合は、そのように作成します。そうでない場合、モデルはそれを認識すべきではありません。