В Cakephp, как я могу получить доступ к массиву из всего приложения - PullRequest
2 голосов
/ 26 мая 2009

Как в CakePHP сделать массив, который мы используем, доступным для всего приложения? Есть ли эквивалент функции PHP define ()?

Ответы [ 3 ]

15 голосов
/ 26 мая 2009

Используйте класс Configure.

В app / config / bootstrap.php:

Configure :: write ('myArray', массив (1,2,3));

Затем в любом месте вашего приложения, например модели, представления, контроллеры, помощники, модели поведения, компоненты и т.д.

$ myArray = Configure :: read ('myArray'); // $ myArray будет содержать массив (1,2,3)

2 голосов
/ 26 мая 2009

Обычно я использую файл «bootstrap.php», расположенный в папке «config».

0 голосов
/ 26 мая 2009

Если вы не хотите «ограничивать» себя тем, что дает вам 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...