frosty22/nette-deploy-center 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

frosty22/nette-deploy-center

Composer 安装命令:

composer require frosty22/nette-deploy-center

包简介

Center for managing deployment, browse logs, exceptions etc. on production.

README 文档

README

Verze 1.1

Upozornění: Podpora Maintenance je dostupná zatím pouze v @dev verzi nikoliv @stable, takže pokud používáte stable, poté implementuje pouze až k volání metody register() .. všechny řádky níže již jsou irelevantní.

Implementace v bootstrap.php, ideálně ihned po načtení autoloaderu z Composeru, aby se nestalo, že pád RobotLoadera způsobí nefunkčnost tohoto DeployCentra.

Zároveň systém volitelně podporuje tzv. údržbu, tj. pokud vystavujete změny a chtěli byste, aby Vám uživatelé nemohli zasahovat do stránky, když není kompletně vystavená. Pak můžete po registraci DeployCentera zavolat metodu checkMaintenance, která v případě, že je údržba aktivní zobrazí "mainteance" šablonu, samozřejmě můžete použít vlastní zavoláním setMaintenanceTemplateFile.

<?php
// Load Nette Framework and autoloader generated by Composer
require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/libs/functions.php';

// Base params
$logDir = __DIR__ . "/log";
$tempDir = __DIR__ . "/temp";

// Debugger center
$deploy = new DeployCenter\Application($logDir, $tempDir, "pass123");
$deploy->register("debug");

// Debugger maintenance support (optional)
//$deploy->setMaintenanceTemplateFile("path/to/our/template.latte"); // If we want own maintenance template
$deploy->checkMaintenance();  // Check maintenance, if in progress kill page and show maintenance template


// Configure application
$configurator = new Nette\Config\Configurator;

...
?>

Pokud byste chtěli informovat uživatele chvíli před vystavení, je to možné pomocí komponenty AlertControl, které předáte objekt Maintenance. Můžeme ho například v bootstrapu přidat do kontejneru jako službu:

<?php
...

// Create container
$container = $configurator->createContainer();

// Debugger center - add dynamic service Maintenance, for support AlertControl (optional)
$container->addService("maintenance", $deploy->getMaintenance());

...
?>

A poté například ve Vašem BasePresenter si vytvořit tuto komponentu:

Pozn.: Bohužel zatím jsem nepřišel na způsob, jak se vyhnout volání kontextu, když je služba dynamicky předaná.

<?php

abstract class BasePresenter extends Nette\Application\UI\Presenter {

	/**
	 * @return \DeployCenter\Maintenance\AlertControl
	 */
	protected function createComponentAlertControl()
	{
		$alertControl = new \DeployCenter\Maintenance\AlertControl();
		$alertControl->setMaintenance($this->context->getService("maintenance"));
		return $alertControl;
	}

}
?>

A v šabloně, kde chci mít onu hlášku v případě, že v blízké době (v tuto chvíli 10 minut) dojde k vystavení a možné nefunkčnosti stránek, vyrenderujeme komponentu:

{control alertControl}

统计信息

  • 总下载量: 507
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 5
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2013-05-15

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固