定制 edifonttes/mysql-backup-manager 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

edifonttes/mysql-backup-manager

Composer 安装命令:

composer require edifonttes/mysql-backup-manager

包简介

Biblioteca PHP para backup de banco de dados MySQL com suporte a SQL e ZIP

README 文档

README

Biblioteca PHP moderna para backup de bancos de dados MySQL com suporte a múltiplos formatos e integração com Google Drive.

✨ Características

  • 🗄️ Backup completo (estrutura + dados)
  • 📦 Múltiplos formatos (SQL, ZIP)
  • ☁️ Google Drive integrado (opcional)
  • 📤 HTTP POST para envio remoto
  • 🔔 Webhooks para notificações em tempo real
  • 🔧 Modular e extensível
  • Fácil de usar
  • 🧪 Testado e documentado

📋 Requisitos

  • PHP >= 7.4
  • Extensão PDO MySQL
  • Extensão ZIP
  • Composer

🚀 Instalação

composer require edifonttes/mysql-backup-manager

Ou adicione manualmente ao seu composer.json:

{
    "require": {
        "edifonttes/mysql-backup-manager": "^1.2"
    }
}

Com Google Drive (opcional):

composer require google/apiclient:^2.15

💡 Uso Básico

Backup SQL:

<?php
require 'vendor/autoload.php';

use MysqlBackup\BackupManager;
use MysqlBackup\Config\BackupConfig;

$config = new BackupConfig([
    'host' => 'localhost',
    'database' => 'meu_banco',
    'username' => 'root',
    'password' => 'senha',
    'backup_path' => __DIR__ . '/backups'
]);

$manager = new BackupManager($config);

// Backup em SQL
$arquivo = $manager->backupToSql();
echo "Backup criado: {$arquivo}";

Backup ZIP:

// Backup compactado
$arquivo = $manager->backupToZip();

Com Google Drive:

use MysqlBackup\Storage\GoogleDriveStorage;

$storage = new GoogleDriveStorage(
    __DIR__ . '/credentials.json',
    'ID_DA_PASTA' // opcional
);

$manager->setStorage($storage);
$arquivo = $manager->backupToZip(); // Local + Google Drive

Com HTTP POST (envio remoto):

use MysqlBackup\Storage\HttpPostStorage;

$storage = new HttpPostStorage(
    'https://seu-servidor.com/backup/receive-backup.php',
    [],
    ['token' => 'seu_token_seguro']
);

$manager->setStorage($storage);
$arquivo = $manager->backupToZip(); // Local + envio remoto

Com Webhooks (notificações):

use MysqlBackup\Notifications\WebhookNotifier;

$webhook = new WebhookNotifier([
    'https://seu-servidor.com/webhook'
]);

try {
    $arquivo = $manager->backupToZip();
    
    // Notifica sucesso
    $webhook->notifySuccess([
        'file' => basename($arquivo),
        'size_mb' => 12.5
    ]);
} catch (Exception $e) {
    // Notifica falha
    $webhook->notifyFailure($e->getMessage());
}

📚 Exemplos Avançados

Esta biblioteca inclui exemplos prontos para produção em docs/examples/:

📂 Copie para sua aplicação:

# Scripts de Cron (CLI e CURL)
cp -r vendor/seu-usuario/mysql-backup/docs/examples/cron ./

# Sistema de Webhooks
cp -r vendor/seu-usuario/mysql-backup/docs/examples/webhooks ./

# Configuração
cp vendor/seu-usuario/mysql-backup/docs/examples/config/.env.example ./.env

# Scripts utilitários
cp vendor/seu-usuario/mysql-backup/docs/examples/scripts/* ./

🎯 O que está incluído:

Cron Jobs:

  • ✅ Backup diário automático
  • ✅ Backup semanal com rotação
  • ✅ Múltiplos bancos de dados
  • ✅ Limpeza de backups antigos
  • ✅ Suporte CLI e CURL

Webhooks Internos:

  • ✅ Registro automático de eventos
  • ✅ Formatos: JSON, CSV, TXT
  • ✅ Visualizador web
  • ✅ API para integração

Scripts Úteis:

  • ✅ Instalador de cron jobs
  • ✅ Testes automatizados
  • ✅ Configuração facilitada

📖 Documentação Completa

Guias detalhados disponíveis em docs/guides/:

⚙️ Configuração

BackupConfig:

$config = new BackupConfig([
    'host' => 'localhost',      // Host do banco
    'database' => 'database',   // Nome do banco
    'username' => 'root',       // Usuário
    'password' => 'senha',      // Senha
    'port' => 3306,            // Porta (padrão: 3306)
    'charset' => 'utf8mb4',    // Charset (padrão: utf8mb4)
    'backup_path' => '/path'   // Onde salvar
]);

🔧 Opções Avançadas

Backup com nome personalizado:

$manager->backupToSql('meu_backup_custom.sql');
$manager->backupToZip('meu_backup_custom.zip');

Listar arquivos no Google Drive:

$files = $storage->listFiles(10);
foreach ($files as $file) {
    echo $file->getName() . "\n";
}

Deletar arquivo do Drive:

$storage->deleteFile('ID_DO_ARQUIVO');

🎯 Casos de Uso

Backup Agendado (Cron):

# Todo dia às 2h
0 2 * * * /usr/bin/php /caminho/cron/daily-backup.php

Backup via CURL (Hospedagem compartilhada):

# CPanel, Plesk, etc
0 2 * * * curl -s "https://seu-site.com/cron/daily-backup.php?token=TOKEN"

Múltiplos Bancos:

$databases = ['db1', 'db2', 'db3'];

foreach ($databases as $db) {
    $config->setDatabase($db);
    $manager = new BackupManager($config);
    $manager->backupToZip();
}

🧪 Testes

# Instale dependências de dev
composer install --dev

# Execute testes
vendor/bin/phpunit

# Com coverage
vendor/bin/phpunit --coverage-html coverage

🤝 Contribuindo

Contribuições são bem-vindas! Por favor:

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/nova-feature)
  3. Commit suas mudanças (git commit -am 'Add nova feature')
  4. Push para a branch (git push origin feature/nova-feature)
  5. Abra um Pull Request

📝 Changelog

Veja CHANGELOG.md para histórico de versões.

Últimas versões:

  • 1.2.0 - Integração para envio remoto (HTTP POST), Webhooks para notificações em tempo real
  • 1.1.0 - Integração Google Drive, exemplos de cron
  • 1.0.0 - Release inicial com backup SQL e ZIP

📄 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

🙏 Agradecimentos

🌟 Star History

Se esta biblioteca foi útil, considere dar uma ⭐ no GitHub!

Desenvolvido com ❤️ para a comunidade PHP

edifonttes/mysql-backup-manager 适用场景与选型建议

edifonttes/mysql-backup-manager 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 10 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 11 月 21 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「database」 「mysql」 「backup」 「google-drive」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 edifonttes/mysql-backup-manager 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 edifonttes/mysql-backup-manager 我们能提供哪些服务?
定制开发 / 二次开发

基于 edifonttes/mysql-backup-manager 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-21