307067580cb8aab7fe96115fa585c3c12dd1ce4d
Every non-interactive backup trigger used a slightly different path, so final status and notification gating behaved inconsistently depending on what started the backup (this is why pre-update backups did not gate notifications the way "Backup Now" does). Add src/Service/BackupRunner.php as the single synchronous entry point. It delegates to BackupEngine (which already sends notifications gated by the profile's notify_on_success/notify_on_failure and applies retention — so there is exactly ONE notification layer), and normalises the result, including the real complete/warning/fail status the engine records but did not return. BackupRunner self-loads BackupEngine so callers require one file. Routed through BackupRunner: - plg_system runPreActionBackup() (preaction) + web-cron handler (webcron) - plg_content triggerAutoBackup() (pre-install) - plg_task scheduled task run - plg_console RunCommand (cli) The dashboard AJAX/stepped "Backup Now" flow is unchanged (it is the interactive equivalent). The installer progress popup is deferred — the installer request cannot drive the AJAX modal (TODO(#196) noted in code). php -l clean on all changed files. Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
Contributing to MokoSuiteBackup
Thank you for your interest in contributing to MokoSuiteBackup.
Getting Started
- Fork the repository on Gitea
- Create a feature branch from
dev(feature/your-feature) - Make your changes following the coding standards below
- Submit a pull request targeting
dev
Branch Strategy
main— stable releases onlydev— active developmentfeature/*— new features (targetdev)fix/*— bug fixes (targetdev)hotfix/*— urgent fixes (targetdevormain)
Coding Standards
- PHP 8.1+ required
- Follow Joomla coding standards
- SPDX license headers on all PHP files
- Use
SubscriberInterfacefor event subscription - Use
bind() -> check() -> store()for Table operations
Reporting Issues
Report bugs and feature requests via Issues.
License
By contributing, you agree that your contributions will be licensed under GPL-3.0-or-later.
Description
Full-site backup and restore for Joomla - database, files, and configuration
https://mokoconsulting.tech/support/products/mokosuitebackup
Readme
4 MiB