Каков наилучший способ создания глобальных переменных в CakePHP?
Я хочу создать глобальную переменную в CakePHP. Если я определяю что-то в моем app_controller.php, например
var $varName
Я могу получить доступ к
$this->varName
из любого из моих контроллеров, но я не могу добраться до него с моделей.
Как создать глобальную переменную, доступную из моделей?
Значение $varName неизвестно до выполнения, поэтому я не думаю, что bootstrap.php является опцией.
Ответы
Ответ 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
Собственно, зачем вы это делаете? Модель не должна знать, что контроллер существует.
Если это бизнес (модель), создайте его как таковой. Если нет, модель не должна это знать.