在CakePHP中创建全局变量的最佳方法是什么?

时间:2009-03-12 17:05:16

标签: cakephp

我想在CakePHP中创建一个全局变量。如果我在app_controller.php中定义了类似

的内容
var $varName

我可以访问

$this->varName

来自我的任何控制器,但我无法从模型中获得它。

如何创建可从模型访问的全局变量?

$ varName的值直到运行时才知道,所以我认为bootstrap.php不是一个选项。

7 个答案:

答案 0 :(得分:31)

  

CakePHP的新Configure class可以   用于存储和检索应用程序   或运行时特定值。是   小心,这个班可以让你   存储任何内容,然后使用它   代码的任何其他部分

答案 1 :(得分:30)

要保存全局变量,请使用Configure Class。例如:

  

配置:: write('Company.name','Pizza,Inc。');

要稍后在代码的任何位置读取变量,请使用:

  

配置::读( 'Company.name'); //产量:'Pizza,Inc。'

存储全局常量的推荐文件位于 app / config / bootstrap.php

有关详细信息,请参阅:
配置课程 - Configure Class CakePhp。 或关于Bootstrapping的第3.4.7节

答案 2 :(得分:5)

你可以在app / config / core.php中声明全局变量

Configure::write('variable Name','Variable Value');
你可以这样打印:

Configure::read('Variable Name'); 

答案 3 :(得分:2)

您的应用的全局函数和变量可以在app / config / bootstrap.php中定义

有关详细信息,请参阅http://book.cakephp.org/view/48/Bootstrapping-CakePHP

答案 4 :(得分:1)

您可以在app / config /目录中的bootstrap.php中定义常量。它可以全局用于任何控制器或视图。

答案 5 :(得分:0)

您可以尝试使用bootstrap.php(cake 3)定义常量

  

此文件适用于许多常见的自举任务:

     

定义便利功能。

     

声明常量。

     

定义缓存配置。

     

定义日志记录配置。

     

加载自定义变形。

     

加载配置文件。

ref https://book.cakephp.org/3.0/en/development/configuration.html#bootstrapping-cakephp

答案 6 :(得分:-2)

实际上,你为什么这样做?模型应该不知道控制器存在。

如果是商业(模型)对象,请按原样创建。如果没有,模型不应该知道它。