Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
80.00% covered (warning)
80.00%
4 / 5
66.67% covered (warning)
66.67%
2 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
Backup_Import_Action
80.00% covered (warning)
80.00%
4 / 5
66.67% covered (warning)
66.67%
2 / 3
4.13
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 log
50.00% covered (danger)
50.00%
1 / 2
0.00% covered (danger)
0.00%
0 / 1
2.50
 error
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2/**
3 * Backup_Import_Action file.
4 *
5 * @package wpcomsh
6 */
7
8namespace Imports;
9
10use WP_Error;
11/**
12 * Abstract class provide common actions between classes.
13 *
14 * This class provides a common interface for all backup importers.
15 */
16abstract class Backup_Import_Action {
17    /**
18     * An optional logger for logging operations.
19     *
20     * @var Utils\Logger\FileLogger|null
21     */
22    protected $logger;
23
24    /**
25     * Constructs a new instance of the Backup_Import_Action class.
26     *
27     * @param Utils\Logger\FileLogger|null $logger An instance of FileLogger for logging messages. Default is null.
28     */
29    public function __construct( $logger = null ) {
30        $this->logger = $logger;
31    }
32
33    /**
34     * Logs a message.
35     *
36     * @param string $message The message to log.
37     */
38    protected function log( $message ) {
39        if ( $this->logger ) {
40            $this->logger->log( $message );
41        }
42    }
43
44    /**
45     * Logs an error if a logger is set and generates a WP_Error.
46     *
47     * @param string $code    The error code.
48     * @param string $message The error message.
49     *
50     * @return WP_Error
51     */
52    protected function error( $code, $message ) {
53        $this->log( "Error: {$code} {$message}" );
54
55        return new WP_Error( $code, $message );
56    }
57}