uam/maintenance-bundle

0.2.0 2017-03-23 05:03 UTC

This package is auto-updated.

Last update: 2024-08-29 04:09:11 UTC


README

这是一个用于管理symfony应用程序维护期间的symfony组件。

需求

  • Propel ORM

安装

将仓库添加到项目的 composer.json

"repositories": [
		{
			"type": "composer",
			"url": "http://satis.united-asian.com/symfony"
		},
		...
]

将组件添加到项目的 composer.json

{
    "require": {
        "uam/maintenance-bundle": "dev-master",
        "uam/twig-i18n-extension": "dev-master",
        ...
    }
}

运行 composer update 安装组件

$ php bin/composer.phar update

假设composer.phar位于bin目录。

在应用的kernel中启用组件

在应用的kernel中启用UAMMaintenanceBundle、UAMDatatablesBundle和UAMTwigI18nBundle。

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new UAM\Bundle\DatatablesBundle\UAMDatatablesBundle(),
        new UAM\Bundle\MaintenanceBundle\UAMMaintenanceBundle(),
        new UAM\Twig\Extension\I18n\Bridge\Symfony\UAMTwigI18nBundle(),
    );
}

将组件添加到assetic配置

#config.yml
assetic:
    - UAMDatatablesBundle
    - UAMMaintenanceBundle

如果您的composer.json没有包含post-install或post-update installAssets脚本处理器,则运行以下命令

$ php app/console assets:install

$ php app/console assets:install --symlink

更新数据库模式

运行以下命令以更新数据库模式。

$ php app/console propel:model:build

然后运行以下命令以生成迁移文件。

$ php app/console propel:migration:generate-diff

生成迁移文件后,打开迁移文件,将查询复制到创建uam_maintenenceuam_maintenance_i18n表并运行查询。

运行命令以执行生成的sql。

$ php app/console propel:migration:migrate

用法

创建维护期间

向用户显示即将进行的维护期间的警告

通常,如果您计划在不久的将来进行维护操作,您希望向您的应用程序的用户发布警告,让他们知道应用程序将在那时不可用。

使用UAMMaintenanceBundle,请将以下代码包含在您的应用程序的适当模板中。如果您希望警告显示在应用程序的所有页面上,请将其包含在基本模板中。

{% render(controller("UAMMaintenanceBundle:Maintenance:warning")) %}

自定义“维护中”页面

导入路由文件

uam_maintenance:
    resource: "@UAMMaintenanceBundle/Resources/config/routing/maintenance.yml"

覆盖布局

layout.html.twig模板覆盖到您的应用程序中,以便显示的页面/消息将与您的应用程序的风格一致。

或者,您也可以覆盖“维护中”页面的progress.html.twig模板。

自定义管理页面

导入路由文件

uam_maintenance_admin:
    resource: "@UAMMaintenanceBundle/Resources/config/routing/admin.yml"

覆盖布局

layout.html.twig模板覆盖到您的应用程序中,以便显示的管理页面将与您的应用程序的风格一致。

要访问管理页面,用户必须具有角色ROLE_UAM_MAINTENANCE_ADMIN

安全性

要访问管理页面

管理页面仅限于某些用户。要访问管理页面,用户必须具有角色ROLE_UAM_MAINTENANCE_ADMIN