我試圖爲CakePHP應用程序創建一個全局「ServerStatus」標誌。這個想法是我可以切換離線/在線模式進行維護,以便當數據被推送到服務器時,該站點處於脫機狀態。 我有一個JavaScript切換設置,以及重定向,但我遇到的問題是全局變量本身。CakePHP動態全局變量
我試過在bootstrap.php中文件的兩件事情,他們都:
(1)我使用的配置類寫的初始狀態,並 (2)我用$ GLOBALS數組編寫初始值。
當我嘗試並且稍後在切換激活時稍後將狀態更改爲備用(非初始)值時,它無法更改。據我所知,這意味着當我在bootstrap.php中寫入一個全局變量時,它就像一個常量,並且初始值將在稍後覆蓋更改。
撥動是在我的默認佈局default.thtml中一個小的腳本:
<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,並且我看到「down」作爲當前狀態。它永遠不會改變。
如果我正確地解釋這意味着在初始化引導文件中寫入全局覆蓋以後的更改,那麼在哪裏可以爲CakePHP應用程序編寫動態GLOBAL初始值的最佳位置? 如果我錯了,有沒有人看到我失蹤?
感謝您的提前幫助!