2013-10-05 1 views
2

Я разрабатываю веб-сайт, используя Yii. Я хочу динамически изменять имя приложения в программе. Я знаю, что мне нужно изменить значение Yii :: app() -> name. Но я знаю, где я должен его переписать, чтобы записать то, что написано в файле config.php.Как изменить имя приложения() -> динамически в Yii?

Где я должен поставить его?

+0

Можете ли вы объяснить, почему * * Вы хотите изменить название приложения? @iodragon прав, это может быть довольно опасно. И, пожалуйста, дайте лучшую причину, чем «Мне это нужно»;). –

ответ

3

$ имени является публичным значением CApplication, вы можете просто установить его теоретически.

Но это не очень хорошая идея, имя используется в GetId функции(), а идентификатор используется в качестве keyPrefix в кэше и, возможно, где-нибудь еще. Таким образом, динамически не меняют имя приложения.

Если то, что вы хотите это изменить название страницы динамически, вы можете просто установить CController :: $ PAGETITLE.

+0

Мне это нужно. Я разрабатываю CMS. Поэтому мне нужно изменить имя приложения из значения в таблице базы данных. –

+0

, чтобы вы могли просто установить его и быть осторожным. – iodragon

+0

Как я могу установить его? это мой вопрос. –

0

Зачем вам нужно, чтобы изменить его? В любом месте, где вы показываете Yii::app()->name, просто используйте что-то вроде getAppName() и напишите функцию, чтобы вытащить ее из базы данных.

1

Старый вопрос, может быть, но я только что провел час фиксируя это и не смогло найти легко исправить так вот:

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

Если вы используете кеширование, вы можете по-прежнему задавать динамическую переменную имени, если вы даете целому приложению статический идентификатор (переменная id класса CApplication).

Это связано с тем, что компонент CWebUser префикс переменной stateKeyPrefix для поиска сеанса, который, если не установлен, ищет идентификатор CApplication, который, если не установлен, является хешированной версией имени приложения. Поэтому, если вы установили любую из этих переменных в свой файл конфигурации, вам хорошо идти.

Смежные вопросы