2016-06-29 2 views
0

Я работаю над проектом CakePHP 3 и хочу создать глобальную переменную для хранения некоторой информации, которая может использоваться во всем приложении.CakePHP 3: глобальная переменная, используемая везде

Я должен хранить информацию о компании, такую ​​как имя, слоган, описание и т. Д., А также некоторые ссылки, например, я использую субдомен из основного приложения для хранения медиафайлов, таких как http://media.website.com, и приложение находится в http://website.com. Теперь я хочу сохранить http://media.website.com в глобальной переменной, чтобы я мог использовать ее в любом месте приложения, как WWW_ROOT.

Для этого я попытался использовать Configure::write('mediaLink', 'http://media.website.com'); и попытался использовать его как просмотр <img src="<?= Configure::read('mediaLink') . DS . 'files' . DS . 'image.jpg'">, но он дает ошибку Class Configure is not found. Я попытался добавить use Cake\Core\Configure; к контроллеру, но он дает такую ​​же ошибку.

+1

'use' (импорт) заявления работают на [** для каждого файла ** ] (http://stackoverflow.com/questions/32443159/cakephp-3-include-use-cake-orm-tableregistry-in-appcontroller-to-be-available/32443678#32443678). Вы можете перечитать: ** http: //stackoverflow.com/questions/37762119/cakephp-3-define-global-contant-variable** – ndm

+0

Не использовать константу. В какой-то момент вам понадобится _not_ использовать константу, а затем вам нужно переписать код. Типичный первый раз, когда это происходит, заключается в добавлении модульных тестов. – AD7six

ответ

0

Сделать отдельный файл, скажем constants.php

Определите глобальные константы и Configure здесь. Не забудьте добавить это поверх файла
use Cake\Core\Configure;

и включить этот файл в bootstrap.php написав require __DIR__ . DS.'constants.php';

+0

'и Configure here' - нужное место для файла app.php или bootstrap.php. – AD7six

+0

@ AD7six Я ​​думаю, что 'bootstrap.php' является правильным местом –

+0

Этот ответ не говорит, что – AD7six