zend-modules / maintenance
ZF2的维护模式组件
Requires
- php: >=5.3.23
- zendframework/zend-eventmanager: 2.4.8
- zendframework/zend-http: 2.4.8
- zendframework/zend-mvc: 2.4.8
- zendframework/zend-servicemanager: 2.4.8
- zendframework/zend-view: 2.4.8
This package is not auto-updated.
Last update: 2024-09-14 19:03:57 UTC
README
安装
主要设置
使用composer(推荐)
-
在您的composer.json中添加此项目
"require": { "zend-modules/maintenance": "dev-master" }
-
现在运行以下命令,让composer下载维护模式组件
$ php composer.phar update
通过克隆项目
- 将此项目克隆到您的
./vendor/
目录。
警告 此安装类型将只允许组件以模块方式安装。
安装后
有两种方式设置此组件。
作为一个组件
-
在您的
application.config.php
文件中启用它。<?php return array( // ... 'service_manager' => array( 'factories' => array( 'MaintenanceConfig' => 'Maintenance\Service\MaintenanceConfigFactory', ), 'invokables' => array( 'MaintenanceListener => 'Maintenance\Service\MaintenanceListener', ), ), 'listeners' => array( 'MaintenanceListener', ), );
作为一个模块
-
在您的
application.config.php
文件中启用它。<?php return array( 'modules' => array( // ... 'Maintenance', ), // ... );
配置
必须在您的application.config.php
文件中进行配置。这是因为维护模块将在整个应用程序中生效。主要入口点是maintenance_mode
。
启用维护模式
-
在您的
application.config.php
文件中启用它。<?php return array( // ... 'maintenance_mode' => array( 'enabled' => true, ), // ... );
enabled
的默认值是false
。因此,要禁用,您可以取消注释该行或将它设置为false
。
启用维护模式访问
您可以在维护模式期间启用某些IP地址来访问您的网站。为此,您必须定义IP地址的白名单。
-
在您的
application.config.php
文件中设置白名单。<?php return array( // ... 'maintenance_mode' => array( 'enabled' => true, 'whitelist' => array( '127.0.0.1', ), ), // ... );
设置自定义模板
-
在您的
application.config.php
文件中设置模板路径。<?php return array( // ... 'maintenance_mode' => array( 'enabled' => true, 'template' => dirname(__DIR__) . '/views/layout/maintenance.phtml', ), // ... );
Retry-After报头
对于状态码设置为503的响应,可能会发送Retry-After
HTTP报头。如果没有设置配置值、设置为过去的日期或状态码不是503,则不会设置此报头。
-
在您的
application.config.php
文件中设置retry-after报头的完整日期和时间。<?php return array( // ... 'retry_after' => '2015-12-07 00:00:00', // ... );
HTTP状态码
默认情况下,服务器在维护模式下将返回503(服务不可用)HTTP状态码。如果您出于任何原因想要更改HTTP状态码,您可以这样做。
-
在您的
application.config.php
文件中设置所需的HTTP状态码。<?php return array( // ... 'maintenance_mode' => array( 'status_code' => 500, ), // ... );
运行时配置
有时我们可能希望从另一个来源(如数据库后端)设置维护模式选项。这可以轻松完成,因为维护模式配置存储在服务管理器中。只需在引导事件中更改您的设置。例如
```php
<?php
namespace Application;
use Zend\EventManager\EventInterface;
class Module
{
public function onBootstrap(EventInterface $e)
{
if (!$e instanceof MvcEvent) {
return;
}
$serviceManager = $e->getApplication()->getServiceManager();
$maintenanceConfig = $serviceManager->get('MaintenanceConfig');
$maintenanceConfig->setEnabled(true);
}
}
```