progminer/maintenance-screen

"维护模式"屏幕库

v4.0.1 2018-07-10 13:09 UTC

This package is auto-updated.

Last update: 2024-09-14 19:14:51 UTC


README

Latest Version on Packagist Software License Build Status Code Coverage Scrutinizer Code Quality Total Downloads

"维护模式"屏幕库

安装

通过Composer

composer require progminer/maintenance-screen

使用一些包含的类,您还需要安装更多的依赖项

  • 对于 MaintenanceScreen\FileLoader\YamlFileLoader - Symfony Yaml
composer require symfony/yaml ^4.0
  • 对于 ProgMinerUtils\TemplateRenderer\TwigTemplateRenderer - Twig
composer require twig/twig ^2.4

使用方法

MaintenanceScreen\MaintenanceScreen 实例由配置数组、MaintenanceScreen\TranslatorProvider\TranslatorProviderInterface 实例和 ProgMinerUtils\TemplateRenderer\TemplateRendererInterface 实例组成。

以下示例逐步说明如何使用 MaintenanceScreen\MaintenanceScreen

示例

首先,您需要写入 uses,包括 vendor/autoload.php(省略),等等。您还可以为 MaintenanceScreen\MaintenanceScreen 制作配置数组。

use MaintenanceScreen\ConfigurationLoader;
use MaintenanceScreen\MaintenanceScreen;

use MaintenanceScreen\TranslatorProvider\ArrayTranslatorProvider;

use ProgMinerUtils\TemplateRenderer\CallableTemplateRenderer;

$config = [
    'template_name'    => 'Default', // template name, not required
    'default_language' => 'en',      // uses if Accept-Language is not provided, not required
    'charset'          => 'utf-8'    // not required, charset for Response and TemplateRenderer
];

这里您需要创建 MaintenanceScreen\TranslatorProvider\TranslatorProviderInterface 实例,您有两个包含的方法

  • 使用数组中的翻译(MaintenanceScreen\TranslatorProvider\ArrayTranslatorProvider 类)
  • 使用配置文件中的翻译(MaintenanceScreen\TranslatorProvider\FilesystemTranslatorProvider 类)

以下是一个使用第一种方法的简单示例

$translatorsProvider = new ArrayTranslatorProvider([
    'en' => ['title' => 'Site in maintenance mode', 'text' => 'Site in maintenance mode'],
    'ru' => ['title' => 'Сайт в режиме техобслуживания', 'text' => 'Сайт в режиме техобслуживания']
]);

您还可以创建一个实现 MaintenanceScreen\TranslatorProvider\ITranslatorProvider 的类。

现在您需要创建一个 ProgMinerUtils\TemplateRenderer\TemplateRendererInterface 实例,例如,ProgMinerUtils\TemplateRenderer\CallableTemplateRenderer

$templateRenderer = new CallableTemplateRenderer([
    'Default' => function($vars) { ?>

<html lang="<?=$vars['lang']?>">
    <head><title><?=$vars['title']?></title></head>
    <body><h1><center><?=$vars['text']?></center></h1></body>
</html>

    <?php }
]);

最后,创建 MaintenanceScreen\MaintenanceScreen 实例

$maintenanceScreen = new MaintenanceScreen($config, $translatorProvider, $templateRenderer);

当您有 MaintenanceScreen\MaintenanceScreen 的实例时,您可以渲染并/或发送渲染的 Symfony\Component\HttpFoundation\Response

  • 渲染
$response = $maintenanceScreen->render();
  • 发送
$maintenanceScreen->send();

这两种方法都没有必需的参数 $request - Symfony\Component\HttpFoundation\Request 类的实例。如果没有提供,这些方法将调用 Symfony\Component\HttpFoundation\Request::createFromGlobals 方法以获取当前请求。

待办事项

  • 添加更多文件加载器

贡献

请参阅CONTRIBUTING 以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件eridan200@mail.ru联系,而不是使用问题跟踪器。

致谢

API 文档

此项目的 API 文档是使用 Sami 构建的,可在 https://progminer.github.io/maintenance-screen/master/ 上找到。

构建

为了构建文档,首先获取 Sami 作为 phar 文件

# curl -O http://get.sensiolabs.org/sami.phar
composer install-sami

接下来构建文档

# php sami.phar update sami-config.php
composer regen-docs

API 文档将生成到 docs 文件夹中。如果您想在本地上预览它,可以使用内置的 PHP 服务器轻松做到这一点

php -S 127.0.0.1:3000 -t docs

然后访问 https://:3000/master/ 以查看。

许可证

MIT 许可证(MIT)。有关更多信息,请参阅许可证文件