What are some best practices for structuring PHP code for database backup tasks to avoid common pitfalls?

When structuring PHP code for database backup tasks, it's important to avoid common pitfalls such as hardcoding sensitive information like database credentials directly in the code. Instead, use environment variables or configuration files to store this information securely. Additionally, make sure to handle errors and exceptions properly to prevent data loss during the backup process.

// Example of PHP code for database backup task with best practices

// Load database credentials from a configuration file
$config = parse_ini_file('config.ini');

// Establish database connection
$mysqli = new mysqli($config['host'], $config['username'], $config['password'], $config['database']);

// Check for connection errors
if ($mysqli->connect_error) {
    die('Connection failed: ' . $mysqli->connect_error);
}

// Perform database backup
$backupFile = 'backup_' . date('Y-m-d_H-i-s') . '.sql';
exec("mysqldump --user={$config['username']} --password={$config['password']} --host={$config['host']} {$config['database']} > $backupFile");

// Close database connection
$mysqli->close();

echo 'Database backup successful!';