Как изменить app()->name динамически в Yii?

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

Где я должен положить это?

3 ответа

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

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

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

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

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

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

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

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

Другие вопросы по тегам