【发布时间】:2009-05-25 22:28:51
【问题描述】:
在 CakePHP 中,如何使我们使用的数组可供整个应用程序访问?有没有相当于 PHP 的 define() 函数?
【问题讨论】:
在 CakePHP 中,如何使我们使用的数组可供整个应用程序访问?有没有相当于 PHP 的 define() 函数?
【问题讨论】:
使用配置类。
在 app/config/bootstrap.php 中:
配置::write('myArray', array(1,2,3));
然后在您的应用中的任何位置,例如模型、视图、控制器、助手、行为、组件等只需使用以下方式访问它:
$myArray = Configure::read('myArray'); // $myArray 将包含数组(1,2,3)
【讨论】:
我通常使用位于“config”文件夹中的“bootstrap.php”文件。
【讨论】:
如果您不想“限制”自己使用 CakePHP 提供的功能,您可以使用全局变量 (yukk) 或简单地将其包装在一个类中:
class Foo {
public static $bar = { 3, 7, 42 };
}
或者使用单例模式:
class Foo {
private static $instance = null;
public $myVar;
private function __construct() {
$this->myVar = { 3, 7, 42 };
}
public static function getInstance() {
if (self::$instance == null) {
self::$instance = new self();
}
return self::$instance;
}
}
那么你可以这样做:
var_dump(Foo::$bar);
或
var_dump(Foo::getInstance()->myVar);
【讨论】: