Я пытаюсь создать глобальный флаг «ServerStatus» для приложения CakePHP. Идея заключается в том, что я могу переключить автономный/онлайн-режим для обслуживания, чтобы при передаче данных на сервер сайт находился в автономном режиме. У меня есть настройка JavaScript, а также перенаправление, но проблема, с которой я столкнулся, находится в самой глобальной переменной.Динамические глобальные переменные CakePHP
Я пробовал две вещи, оба из них в файле bootstrap.php:
(1) Я использовал Настройка класса для записи начального состояния, и (2) Я использовал массив $ GLOBALS для записи начального значения.
Когда я пытаюсь, и позже, измените статус на альтернативное (неисчерпывающее) значение позже, когда переключатель активирован, он не изменится. Насколько я могу судить, это означает, что когда я пишу глобальную переменную в bootstrap.php, она действует как константа, а начальное значение переопределяет изменения позже.
тумблер небольшой скрипт в моем умолчанию Layout default.ctp:
<script type="text/javascript">
var charInputs = [];
setInterval(clearInputBuffer(), 20000);
function keyPressHandler(event)
{
var currChar = String.fromCharCode(event.charCode);
charInputs.push(currChar);
//alert(currChar + ' key pressed!');
checkForKeyPhrases(charInputs);
}
function checkForKeyPhrases(chars)
{
// Get inputted chars as a sequence
var seq = "";
for (var i=0; i < chars.length; i++)
seq += chars[i] + "";
// Check for "Maintenance Mode"
if (seq == ":maintenance")
{
alert("Maintenance mode... go!");
<?php
if ($GLOBALS['ServerOnline'])
{
$GLOBALS['status'] = 'down';
$GLOBALS['ServerOnline'] = false;
}
else
{
$GLOBALS['status'] = 'up';
$GLOBALS['ServerOnline'] = true;
}
?>
var temp = '<?php echo $GLOBALS['status']; ?>';
alert('Current Server Status: ' + temp);
clearInputBuffer();
}
else if (seq.indexOf('clear') > -1)
clearInputBuffer();
}
function clearInputBuffer()
{ charInputs = []; }
</script>
В bootstrap.php, я пишу $GLOBALS['ServerOnline'] = true;
; но когда появляется предупреждение, оно всегда регистрирует начальное значение true, и я вижу «вниз» как текущий статус. Это никогда не меняется.
Если я правильно интерпретирую это, чтобы означать, что запись глобального файла инициализации bootstrap переопределяет последующие изменения, где было бы лучше всего записать динамическое GLOBAL-значение для приложения CakePHP? Если я ошибаюсь, кто-нибудь видит, что мне не хватает?
Спасибо за вашу помощь раньше времени!