Глобальные переменные

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
AlexII
Сообщения: 7
Зарегистрирован: 2018.04.13, 16:00

Глобальные переменные

Сообщение AlexII »

Добрый день. Я пытаюсь прикрутить FileInput от Kartika. Автор пишет в своем блоге (http://webtips.krajee.com/advanced-uplo ... ut-widget/), что желательно определить глобальные переменные. И приводит такой пример:

Код: Выделить всё

Yii::$app->params['uploadPath'] = Yii::$app->basePath . '/uploads/';
Yii::$app->params['uploadUrl'] = Yii::$app->urlManager->baseUrl . '/uploads/';
Что он имел ввиду, я не понял. В конфиге своего приложения я определил массив с параметрами, но присвоить этим параметрам такие значения как Yii::$app->basePath не получается. Само приложение же не запущено, когда подгружается файл конфигурации, оно не знает об объекте $app! Как быть? Как вы делаете в своих приложениях? Спасибо большое.
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: Глобальные переменные

Сообщение Alexum »

Yii::$app->params это не глобальные переменные, а массив заранее определённых параметров, которые можно только считывать из любой части приложения. В params можно прописать относительные пути, а абсолютные собирать по месту требования (если вообще потребуется, т.к. у меня FileInput работает на относительных).

PS. Статья старая, Yii::$app->params формируется только непосредственно в params.php и params-local.php.
SindBad
Сообщения: 81
Зарегистрирован: 2015.06.18, 10:53

Re: Глобальные переменные

Сообщение SindBad »

Добрый! Таким образом определить глобальные параметры можно, например, в модуле, или в контроллере, использующем виджет и модель, приведенные автором статьи. Делать это придется через перегрузку метода init(), и что-то мне подсказывает, что получится лапшекод)))
Ответить