progminer / maintenance-screen
"维护模式"屏幕库
Requires
- php: ^7.1
- progminer/util-template-renderer: ^1.0
- symfony/config: ^4.0
- symfony/http-foundation: ^4.0
Requires (Dev)
- phpunit/phpunit: ^7
- symfony/yaml: ^4.0
- twig/twig: ^2.4
Suggests
- symfony/yaml: To use the yaml file loader
- twig/twig: To use the twig template renderer
README
"维护模式"屏幕库
安装
通过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)。有关更多信息,请参阅许可证文件。