Подтвердить что ты не робот

Каков наилучший способ создания глобальных переменных в CakePHP?

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

var $varName

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

$this->varName

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

Настроить:: write ('Company.name', 'Pizza, Inc.');

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

Настройка:: чтение ( 'Company.name');//дает: 'Pizza, Inc.'

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

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

Ответ 3

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

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

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

Configure::read('Variable Name'); 

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

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

Определение удобных функций.

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

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

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

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

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

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

Ответ 7

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

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