有一种简单的方法可以将应用程序置于“只读”模式吗?

时间:2014-05-30 02:42:28

标签: php cakephp cakephp-2.4

我有一个重新启动生产Web服务器并希望限制计划中断期间的更新。在此期间,用户仍然可以查看数据。

是否有一种简单的方法可以告诉Cake锁定更新页面?

我以为我可以在配置文件中添加一个全局变量,所有更新页面都会检查。如果已设置,则会禁用该页面。

也许可以在控制器中完成。如果您转到添加/编辑/删除页面,请设置Flash消息并重定向到索引。

我正在使用MySQL,因此我可以将其设置为只读,但用户会收到错误。

1 个答案:

答案 0 :(得分:1)

对于cakephp 1.3

core.php中

<?php
...
// Offline mode
Configure::write( 'SiteSettings.site_status', 'Online' );
Configure::write( 'SiteSettings.site_offline_url', '/offline' );
...
?>

app_controller.php

<?php
...
function beforeFilter()
{
    ...
    // Offline mode
    if( ( Configure::read( 'SiteSettings.site_status' ) == 'Offline' ) and ( $this->here != Configure::read( 'SiteSettings.site_offline_url' ) ) )
    {
        $this->redirect( Configure::read( 'SiteSettings.site_offline_url' ) );
    }
    ...
}
...
?>

视图/页/ offline.php

<div>Whatever HTML you want for "offline mode"</div>