d3yii2/d3backupmodules

该软件包最新版本(dev-master)没有可用的许可证信息。

dev-master 2022-06-07 09:41 UTC

This package is auto-updated.

Last update: 2024-09-07 14:32:59 UTC


README

##特性

  • 使用它创建所需模块数据的压缩备份及其附件。 (通过控制台与cron一起运行)
  • 发送完成过程的电子邮件(带链接,取决于视图)
  • 检查过期参数以删除旧的压缩文件。

安装

通过composer安装此扩展是首选方式。

运行以下命令之一:

$ composer require d3yii2/d3backupmodules "*"

或者

"d3yii2/d3backupmodules": "*"

将其添加到你的composer.json文件的require部分。

配置

修改console.php

    'components' =>
        [
            'd3backupmodules' => [
                'class' => 'd3yii2\d3backupmodules\components\ModuleBackupBase',
                'modelComponents' => [2 => 'd3modules\d3invoices\components\InvInvoiceBackup'],
                'emailFrom' => 'Irēķini sistēma',
                'emailBody' => '<a href="{$link}" target="_blank">Lejuplādēt arhīvu</a>',
            ]
        ]

修改main.php/web.php

    'modules' => [
        'd3backupmodules' => [
            'class' => 'd3yii2\d3backupmodules\Module',
            'backupDirectory' => $basePath . '/runtime/backups/'
        ]
    ]

使用方法

配置完成后,需要在首选模块中创建自定义组件(见下例)并包含视图。

重要

数据库中的数据列应为json格式,键为"id","error","date_from","date_to"

方法

通过传递变量(附加8个字符的随机字符串)创建自定义文件名并返回它。

public function createFileName(string $sys_company_name, string $list_name, string $date_from, string $date_to):string

通过传递的名称创建一个目录,并从给定的$html字符串生成第一个index.html。

public function createFile(string $fileName, string $html):string

创建压缩文件。

public function createZip(string $backUpFolder, string $fileNameFullPath, string $fileName, array $addFiles = [], D3BackupModule $model)

自定义组件示例

public function compile(array $backupData, D3BackupModule $model)
{
   $moduleBackup = new ModuleBackupBase();
   $fileName = $moduleBackup->createFileName('Company', 'Invoices', $model->getDataValue('date_from'), $model->getDataValue('date_to'));
   $html = \Yii::$app->view->render('@vendor/d3modules/d3invoices/views/d3yii2-backup/index', ['backupData' => $backupData]);
   $backupFolder = $moduleBackup->createFile($fileName, $html);
   $moduleBackup->createZip($backupFolder, $moduleBackup->backupDirectory.$fileName, $fileName, [], $model);
}