Каков наилучший способ создания глобальных переменных в CakePHP? - PullRequest
22 голосов
/ 12 марта 2009

Я хотел бы создать глобальную переменную в CakePHP. Если я определю что-то в моем app_controller.php, как

var $varName

Я могу получить доступ

$this->varName

с любого из моих контроллеров, но я не могу добраться до него от моделей.

Как я могу создать глобальную переменную, доступную из моделей?

Значение $ varName не известно до времени выполнения, поэтому я не думаю, что bootstrap.php является опцией.

Ответы [ 7 ]

31 голосов
/ 12 марта 2009

Новый CakePHP Настроить класс можно используется для хранения и извлечения приложения или конкретные значения времени выполнения. Быть осторожно, этот класс позволяет хранить что-нибудь в нем, а затем использовать его в любая другая часть вашего кода

30 голосов
/ 17 декабря 2010

Для сохранения глобальных переменных используйте класс настройки. Например:

Configure :: write ('Company.name', 'Pizza, Inc.');

Чтобы прочитать переменную позже в любом месте вашего кода, используйте:

Настройка :: чтения ( 'Company.name'); // выход: «Пицца, Инк.»

Рекомендуемый файл для хранения глобальных констант находится в app / config / bootstrap.php

Для получения дополнительной информации см .:
Настроить класс - Настроить класс CakePhp . или Раздел 3.4.7 по начальной загрузке

5 голосов
/ 18 января 2014

вы можете объявить глобальную переменную в app / cofig / core.php

Configure::write('variable Name','Variable Value');

Вы можете напечатать так:

Configure::read('Variable Name'); 
2 голосов
/ 14 марта 2009

Глобальные функции и переменные для вашего приложения могут быть определены в app / config / bootstrap.php

для получения дополнительной информации см. http://book.cakephp.org/view/48/Bootstrapping-CakePHP

1 голос
/ 20 июня 2013

Вы можете определить константы в bootstrap.php в каталоге app / config /. Может использоваться глобально в любом контроллере или представлении.

0 голосов
/ 28 декабря 2017

Вы можете попытаться определить константы с помощью bootstrap.php (торт 3)

Этот файл идеально подходит для ряда распространенных задач начальной загрузки:

Определение вспомогательных функций.

Объявление констант.

Определение конфигурации кэша.

Определение конфигурации ведения журнала.

Загрузка пользовательских изгибов.

Загрузка файлов конфигурации.

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

0 голосов
/ 12 марта 2009

На самом деле, зачем ты это делаешь? Модель не должна знать, что контроллер существует.

Если это бизнес (модельный) объект, создайте его как таковой. Если нет, модель не должна это знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...