Completed
Push — develop ( 2b0757...37b1a2 )
by Naveen
34s queued 12s
created
src/modules/food-kg/load.php 1 patch
Indentation   +81 added lines, -81 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
 use Wordlift\Task\Single_Call_Task;
20 20
 
21 21
 if ( ! defined( 'ABSPATH' ) ) {
22
-	exit;
22
+    exit;
23 23
 }
24 24
 
25 25
 define( 'WL_FOOD_KG_FILE', __FILE__ );
@@ -27,86 +27,86 @@  discard block
 block discarded – undo
27 27
 
28 28
 function __wl_foodkg__load() {
29 29
 
30
-	// Autoloader for plugin itself.
31
-	if ( file_exists( __DIR__ . '/vendor/autoload.php' ) ) {
32
-		require __DIR__ . '/vendor/autoload.php';
33
-	}
34
-
35
-	$container_builder = new ContainerBuilder();
36
-	$loader            = new YamlFileLoader( $container_builder, new FileLocator( __DIR__ ) );
37
-	$loader->load( 'services.yml' );
38
-	$container_builder->compile();
39
-
40
-	$notices = $container_builder->get( 'Wordlift\Modules\Food_Kg\Notices' );
41
-	$notices->register_hooks();
42
-
43
-	/**
44
-	 * @var Preconditions $preconditions
45
-	 */
46
-	$preconditions = $container_builder->get( 'Wordlift\Modules\Food_Kg\Preconditions' );
47
-	if ( ! $preconditions->pass() ) {
48
-		return;
49
-	}
50
-
51
-	// Meta Box.
52
-	$meta_box = $container_builder->get( 'Wordlift\Modules\Food_Kg\Admin\Meta_Box' );
53
-	$meta_box->register_hooks();
54
-
55
-	$module = $container_builder->get( 'Wordlift\Modules\Food_Kg\Module' );
56
-	$module->register_hooks();
57
-
58
-	/** @var Jsonld $jsonld */
59
-	$jsonld = $container_builder->get( 'Wordlift\Modules\Food_Kg\Jsonld' );
60
-	$jsonld->register_hooks();
61
-
62
-	/**
63
-	 * Ingredients API.
64
-	 */
65
-	$ingredients_api = $container_builder->get( 'Wordlift\Modules\Food_Kg\Ingredients_API' );
66
-	$ingredients_api->register_hooks();
67
-
68
-	/** @var Main_Ingredient_Jsonld $jsonld */
69
-	$main_ingredient_jsonld = $container_builder->get( 'Wordlift\Modules\Food_Kg\Main_Ingredient_Jsonld' );
70
-	$main_ingredient_jsonld->register_hooks();
71
-
72
-	// Main Ingredient Background Task.
73
-	$main_ingredient_recipe_lift = $container_builder->get( 'Wordlift\Modules\Food_Kg\Main_Ingredient_Recipe_Lift_Strategy' );
74
-	Background_Task_Factory::create_action_scheduler_task(
75
-		'wl_main_ingredient_sync',
76
-		'wordlift',
77
-		new All_Posts_Task(
78
-			array( $main_ingredient_recipe_lift, 'process' ),
79
-			'wprm_recipe',
80
-			'sync-main-ingredient'
81
-		),
82
-		'/main-ingredient',
83
-		'sync-main-ingredient',
84
-		__( 'Synchronize Main Ingredient', 'wordlift' )
85
-	);
86
-
87
-	// Ingredients Taxonomy Background Task.
88
-	$ingredients_taxonomy_recipe_lift = $container_builder->get( 'Wordlift\Modules\Food_Kg\Ingredients_Taxonomy_Recipe_Lift_Strategy' );
89
-	Background_Task_Factory::create(
90
-		new Single_Call_Task(
91
-			array( $ingredients_taxonomy_recipe_lift, 'run' ),
92
-			'sync-ingredients-taxonomy'
93
-		),
94
-		'/sync-ingredients-taxonomy',
95
-		'sync-ingredients-taxonomy',
96
-		__( 'Synchronize Ingredients Taxonomy', 'wordlift' )
97
-	);
98
-
99
-	if ( is_admin() ) {
100
-		$page = $container_builder->get( 'Wordlift\Modules\Food_Kg\Admin\Page' );
101
-		$page->register_hooks();
102
-
103
-		$page = $container_builder->get( 'Wordlift\Modules\Food_Kg\Admin\Ingredients_Taxonomy_Page' );
104
-		$page->register_hooks();
105
-
106
-		// Download Ingredients Data.
107
-		$download_ingredients_data = $container_builder->get( 'Wordlift\Modules\Food_Kg\Admin\Download_Ingredients_Data' );
108
-		$download_ingredients_data->register_hooks();
109
-	}
30
+    // Autoloader for plugin itself.
31
+    if ( file_exists( __DIR__ . '/vendor/autoload.php' ) ) {
32
+        require __DIR__ . '/vendor/autoload.php';
33
+    }
34
+
35
+    $container_builder = new ContainerBuilder();
36
+    $loader            = new YamlFileLoader( $container_builder, new FileLocator( __DIR__ ) );
37
+    $loader->load( 'services.yml' );
38
+    $container_builder->compile();
39
+
40
+    $notices = $container_builder->get( 'Wordlift\Modules\Food_Kg\Notices' );
41
+    $notices->register_hooks();
42
+
43
+    /**
44
+     * @var Preconditions $preconditions
45
+     */
46
+    $preconditions = $container_builder->get( 'Wordlift\Modules\Food_Kg\Preconditions' );
47
+    if ( ! $preconditions->pass() ) {
48
+        return;
49
+    }
50
+
51
+    // Meta Box.
52
+    $meta_box = $container_builder->get( 'Wordlift\Modules\Food_Kg\Admin\Meta_Box' );
53
+    $meta_box->register_hooks();
54
+
55
+    $module = $container_builder->get( 'Wordlift\Modules\Food_Kg\Module' );
56
+    $module->register_hooks();
57
+
58
+    /** @var Jsonld $jsonld */
59
+    $jsonld = $container_builder->get( 'Wordlift\Modules\Food_Kg\Jsonld' );
60
+    $jsonld->register_hooks();
61
+
62
+    /**
63
+     * Ingredients API.
64
+     */
65
+    $ingredients_api = $container_builder->get( 'Wordlift\Modules\Food_Kg\Ingredients_API' );
66
+    $ingredients_api->register_hooks();
67
+
68
+    /** @var Main_Ingredient_Jsonld $jsonld */
69
+    $main_ingredient_jsonld = $container_builder->get( 'Wordlift\Modules\Food_Kg\Main_Ingredient_Jsonld' );
70
+    $main_ingredient_jsonld->register_hooks();
71
+
72
+    // Main Ingredient Background Task.
73
+    $main_ingredient_recipe_lift = $container_builder->get( 'Wordlift\Modules\Food_Kg\Main_Ingredient_Recipe_Lift_Strategy' );
74
+    Background_Task_Factory::create_action_scheduler_task(
75
+        'wl_main_ingredient_sync',
76
+        'wordlift',
77
+        new All_Posts_Task(
78
+            array( $main_ingredient_recipe_lift, 'process' ),
79
+            'wprm_recipe',
80
+            'sync-main-ingredient'
81
+        ),
82
+        '/main-ingredient',
83
+        'sync-main-ingredient',
84
+        __( 'Synchronize Main Ingredient', 'wordlift' )
85
+    );
86
+
87
+    // Ingredients Taxonomy Background Task.
88
+    $ingredients_taxonomy_recipe_lift = $container_builder->get( 'Wordlift\Modules\Food_Kg\Ingredients_Taxonomy_Recipe_Lift_Strategy' );
89
+    Background_Task_Factory::create(
90
+        new Single_Call_Task(
91
+            array( $ingredients_taxonomy_recipe_lift, 'run' ),
92
+            'sync-ingredients-taxonomy'
93
+        ),
94
+        '/sync-ingredients-taxonomy',
95
+        'sync-ingredients-taxonomy',
96
+        __( 'Synchronize Ingredients Taxonomy', 'wordlift' )
97
+    );
98
+
99
+    if ( is_admin() ) {
100
+        $page = $container_builder->get( 'Wordlift\Modules\Food_Kg\Admin\Page' );
101
+        $page->register_hooks();
102
+
103
+        $page = $container_builder->get( 'Wordlift\Modules\Food_Kg\Admin\Ingredients_Taxonomy_Page' );
104
+        $page->register_hooks();
105
+
106
+        // Download Ingredients Data.
107
+        $download_ingredients_data = $container_builder->get( 'Wordlift\Modules\Food_Kg\Admin\Download_Ingredients_Data' );
108
+        $download_ingredients_data->register_hooks();
109
+    }
110 110
 }
111 111
 
112 112
 add_action( 'plugins_loaded', '__wl_foodkg__load' );
Please login to merge, or discard this patch.
src/wordlift/task/action-scheduler/class-context.php 1 patch
Indentation   +117 added lines, -117 removed lines patch added patch discarded remove patch
@@ -4,122 +4,122 @@
 block discarded – undo
4 4
 
5 5
 class Context {
6 6
 
7
-	private $count;
8
-	private $offset;
9
-	private $started;
10
-	private $updated;
11
-
12
-	/**
13
-	 * @param $count
14
-	 * @param $offset
15
-	 * @param $started
16
-	 * @param $updated
17
-	 */
18
-	public function __construct( $count, $offset, $started, $updated ) {
19
-		$this->count   = $count;
20
-		$this->offset  = $offset;
21
-		$this->started = $started;
22
-		$this->updated = $updated;
23
-	}
24
-
25
-	/**
26
-	 * @return int
27
-	 */
28
-	public function get_count() {
29
-		return $this->count;
30
-	}
31
-
32
-	/**
33
-	 * @param int $count
34
-	 *
35
-	 * @return Context
36
-	 */
37
-	public function set_count( $count ) {
38
-		$this->count = $count;
39
-
40
-		return $this;
41
-	}
42
-
43
-	/**
44
-	 * @return int
45
-	 */
46
-	public function get_offset() {
47
-		return $this->offset;
48
-	}
49
-
50
-	/**
51
-	 * @param int $offset
52
-	 *
53
-	 * @return Context
54
-	 */
55
-	public function set_offset( $offset ) {
56
-		$this->offset = $offset;
57
-
58
-		return $this;
59
-	}
60
-
61
-	/**
62
-	 * @return int
63
-	 */
64
-	public function get_started() {
65
-		return $this->started;
66
-	}
67
-
68
-	/**
69
-	 * @param int $started
70
-	 *
71
-	 * @return Context
72
-	 */
73
-	public function set_started( $started ) {
74
-		$this->started = $started;
75
-
76
-		return $this;
77
-	}
78
-
79
-	/**
80
-	 * @return int
81
-	 */
82
-	public function get_updated() {
83
-		return $this->updated;
84
-	}
85
-
86
-	/**
87
-	 * @param int $updated
88
-	 *
89
-	 * @return Context
90
-	 */
91
-	public function set_updated( $updated ) {
92
-		$this->updated = $updated;
93
-
94
-		return $this;
95
-	}
96
-
97
-	public function get_data() {
98
-		return array(
99
-			'count'   => $this->count,
100
-			'updated' => $this->updated,
101
-			'started' => $this->started,
102
-			'offset'  => $this->offset,
103
-			'index'   => $this->offset,
104
-		);
105
-	}
106
-
107
-	/**
108
-	 * @param $count int
109
-	 *
110
-	 * @return Context
111
-	 */
112
-	public static function from( $count ) {
113
-		return new self( $count, 0, time(), time() );
114
-	}
115
-
116
-	/**
117
-	 * @param $data array
118
-	 *
119
-	 * @return Context
120
-	 */
121
-	public static function from_data( $data ) {
122
-		return new self( $data['count'], $data['offset'], $data['started'], $data['updated'] );
123
-	}
7
+    private $count;
8
+    private $offset;
9
+    private $started;
10
+    private $updated;
11
+
12
+    /**
13
+     * @param $count
14
+     * @param $offset
15
+     * @param $started
16
+     * @param $updated
17
+     */
18
+    public function __construct( $count, $offset, $started, $updated ) {
19
+        $this->count   = $count;
20
+        $this->offset  = $offset;
21
+        $this->started = $started;
22
+        $this->updated = $updated;
23
+    }
24
+
25
+    /**
26
+     * @return int
27
+     */
28
+    public function get_count() {
29
+        return $this->count;
30
+    }
31
+
32
+    /**
33
+     * @param int $count
34
+     *
35
+     * @return Context
36
+     */
37
+    public function set_count( $count ) {
38
+        $this->count = $count;
39
+
40
+        return $this;
41
+    }
42
+
43
+    /**
44
+     * @return int
45
+     */
46
+    public function get_offset() {
47
+        return $this->offset;
48
+    }
49
+
50
+    /**
51
+     * @param int $offset
52
+     *
53
+     * @return Context
54
+     */
55
+    public function set_offset( $offset ) {
56
+        $this->offset = $offset;
57
+
58
+        return $this;
59
+    }
60
+
61
+    /**
62
+     * @return int
63
+     */
64
+    public function get_started() {
65
+        return $this->started;
66
+    }
67
+
68
+    /**
69
+     * @param int $started
70
+     *
71
+     * @return Context
72
+     */
73
+    public function set_started( $started ) {
74
+        $this->started = $started;
75
+
76
+        return $this;
77
+    }
78
+
79
+    /**
80
+     * @return int
81
+     */
82
+    public function get_updated() {
83
+        return $this->updated;
84
+    }
85
+
86
+    /**
87
+     * @param int $updated
88
+     *
89
+     * @return Context
90
+     */
91
+    public function set_updated( $updated ) {
92
+        $this->updated = $updated;
93
+
94
+        return $this;
95
+    }
96
+
97
+    public function get_data() {
98
+        return array(
99
+            'count'   => $this->count,
100
+            'updated' => $this->updated,
101
+            'started' => $this->started,
102
+            'offset'  => $this->offset,
103
+            'index'   => $this->offset,
104
+        );
105
+    }
106
+
107
+    /**
108
+     * @param $count int
109
+     *
110
+     * @return Context
111
+     */
112
+    public static function from( $count ) {
113
+        return new self( $count, 0, time(), time() );
114
+    }
115
+
116
+    /**
117
+     * @param $data array
118
+     *
119
+     * @return Context
120
+     */
121
+    public static function from_data( $data ) {
122
+        return new self( $data['count'], $data['offset'], $data['started'], $data['updated'] );
123
+    }
124 124
 
125 125
 }
Please login to merge, or discard this patch.
src/wordlift/task/background/class-background-task-route.php 1 patch
Indentation   +90 added lines, -90 removed lines patch added patch discarded remove patch
@@ -8,95 +8,95 @@
 block discarded – undo
8 8
 
9 9
 class Background_Task_Route {
10 10
 
11
-	const VERSION_STRING = 'wordlift/v1';
12
-
13
-	/**
14
-	 * @var Background_Route_Task
15
-	 */
16
-	private $background_task;
17
-
18
-	/**
19
-	 * @var string
20
-	 */
21
-	private $route_name;
22
-
23
-	public function __construct( $background_task, $route_name ) {
24
-		$this->background_task = $background_task;
25
-		$this->route_name      = $route_name;
26
-	}
27
-
28
-	public static function create( $task, $route_name ) {
29
-		$route = new self( $task, $route_name );
30
-
31
-		add_action( 'rest_api_init', array( $route, 'register' ) );
32
-
33
-		return $route;
34
-	}
35
-
36
-	/**
37
-	 * @throws Exception if the input value is invalid.
38
-	 */
39
-	public function register() {
40
-		Assertions::starts_with( $this->route_name, '/', 'The route name must start with a slash.' );
41
-
42
-		register_rest_route(
43
-			self::VERSION_STRING,
44
-			$this->route_name,
45
-			array(
46
-				'methods'             => WP_REST_Server::CREATABLE,
47
-				'callback'            => function () {
48
-					return $this->background_task->start();
49
-				},
50
-				'permission_callback' => array( $this, 'permission_callback' ),
51
-			)
52
-		);
53
-
54
-		register_rest_route(
55
-			self::VERSION_STRING,
56
-			$this->route_name,
57
-			array(
58
-				'methods'             => WP_REST_Server::READABLE,
59
-				'callback'            => function () {
60
-					return $this->background_task->get_info();
61
-				},
62
-				'permission_callback' => array( $this, 'permission_callback' ),
63
-			)
64
-		);
65
-
66
-		register_rest_route(
67
-			self::VERSION_STRING,
68
-			$this->route_name,
69
-			array(
70
-				'methods'             => WP_REST_Server::DELETABLE,
71
-				'callback'            => function () {
72
-					return $this->background_task->stop();
73
-				},
74
-				'permission_callback' => array( $this, 'permission_callback' ),
75
-			)
76
-		);
77
-
78
-		register_rest_route(
79
-			self::VERSION_STRING,
80
-			$this->route_name,
81
-			array(
82
-				'methods'             => 'PUT',
83
-				'callback'            => function () {
84
-					return $this->background_task->resume();
85
-				},
86
-				'permission_callback' => array( $this, 'permission_callback' ),
87
-			)
88
-		);
89
-
90
-	}
91
-
92
-	public function permission_callback() {
93
-		$user = wp_get_current_user();
94
-
95
-		return is_super_admin( $user->ID ) || in_array( 'administrator', (array) $user->roles, true );
96
-	}
97
-
98
-	public function get_rest_path() {
99
-		return self::VERSION_STRING . $this->route_name;
100
-	}
11
+    const VERSION_STRING = 'wordlift/v1';
12
+
13
+    /**
14
+     * @var Background_Route_Task
15
+     */
16
+    private $background_task;
17
+
18
+    /**
19
+     * @var string
20
+     */
21
+    private $route_name;
22
+
23
+    public function __construct( $background_task, $route_name ) {
24
+        $this->background_task = $background_task;
25
+        $this->route_name      = $route_name;
26
+    }
27
+
28
+    public static function create( $task, $route_name ) {
29
+        $route = new self( $task, $route_name );
30
+
31
+        add_action( 'rest_api_init', array( $route, 'register' ) );
32
+
33
+        return $route;
34
+    }
35
+
36
+    /**
37
+     * @throws Exception if the input value is invalid.
38
+     */
39
+    public function register() {
40
+        Assertions::starts_with( $this->route_name, '/', 'The route name must start with a slash.' );
41
+
42
+        register_rest_route(
43
+            self::VERSION_STRING,
44
+            $this->route_name,
45
+            array(
46
+                'methods'             => WP_REST_Server::CREATABLE,
47
+                'callback'            => function () {
48
+                    return $this->background_task->start();
49
+                },
50
+                'permission_callback' => array( $this, 'permission_callback' ),
51
+            )
52
+        );
53
+
54
+        register_rest_route(
55
+            self::VERSION_STRING,
56
+            $this->route_name,
57
+            array(
58
+                'methods'             => WP_REST_Server::READABLE,
59
+                'callback'            => function () {
60
+                    return $this->background_task->get_info();
61
+                },
62
+                'permission_callback' => array( $this, 'permission_callback' ),
63
+            )
64
+        );
65
+
66
+        register_rest_route(
67
+            self::VERSION_STRING,
68
+            $this->route_name,
69
+            array(
70
+                'methods'             => WP_REST_Server::DELETABLE,
71
+                'callback'            => function () {
72
+                    return $this->background_task->stop();
73
+                },
74
+                'permission_callback' => array( $this, 'permission_callback' ),
75
+            )
76
+        );
77
+
78
+        register_rest_route(
79
+            self::VERSION_STRING,
80
+            $this->route_name,
81
+            array(
82
+                'methods'             => 'PUT',
83
+                'callback'            => function () {
84
+                    return $this->background_task->resume();
85
+                },
86
+                'permission_callback' => array( $this, 'permission_callback' ),
87
+            )
88
+        );
89
+
90
+    }
91
+
92
+    public function permission_callback() {
93
+        $user = wp_get_current_user();
94
+
95
+        return is_super_admin( $user->ID ) || in_array( 'administrator', (array) $user->roles, true );
96
+    }
97
+
98
+    public function get_rest_path() {
99
+        return self::VERSION_STRING . $this->route_name;
100
+    }
101 101
 
102 102
 }
Please login to merge, or discard this patch.
src/wordlift/task/background/class-background-task.php 1 patch
Indentation   +114 added lines, -114 removed lines patch added patch discarded remove patch
@@ -7,119 +7,119 @@
 block discarded – undo
7 7
 
8 8
 class Background_Task extends Wordlift_Plugin_WP_Background_Process implements Background_Route_Task {
9 9
 
10
-	const STATE_STARTED = 'started';
11
-	const STATE_STOPPED = 'stopped';
12
-
13
-	/**
14
-	 * The current state of the task, started or stopped.
15
-	 *
16
-	 * @var Background_Task_State $state
17
-	 */
18
-	private $state;
19
-
20
-	/**
21
-	 * The actual task.
22
-	 *
23
-	 * @var Task $task
24
-	 */
25
-	private $task;
26
-
27
-	/**
28
-	 * The prefix to store the state and other information in WP's options table, determined at instantiation.
29
-	 *
30
-	 * @var string $option_prefix
31
-	 */
32
-	private $option_prefix;
33
-
34
-	/**
35
-	 * @param Task $task
36
-	 */
37
-	public function __construct( $task ) {
38
-		$this->action        = $task->get_id();
39
-		$this->option_prefix = "_{$this->action}_";
40
-
41
-		parent::__construct();
42
-
43
-		// Set the current state.
44
-		if ( self::STATE_STARTED === $this->get_state() ) {
45
-			$this->state = new Background_Task_Started_State( $this, $task );
46
-		} else {
47
-			$this->state = new Background_Task_Stopped_State( $this );
48
-		}
49
-
50
-		$this->task = $task;
51
-	}
52
-
53
-	public static function create( $task ) {
54
-		return new self( $task );
55
-	}
56
-
57
-	public function get_option_prefix() {
58
-		return $this->option_prefix;
59
-	}
60
-
61
-	/**
62
-	 * This function is called:
63
-	 *  - To start a new Synchronization, by passing a {@link Sync_Start_Message} instance.
64
-	 *  - To synchronize a post, by passing a numeric ID.
65
-	 *
66
-	 * This function returns the parameter for the next call or NULL if there are no more posts to process.
67
-	 *
68
-	 * @param mixed $item Queue item to iterate over.
69
-	 *
70
-	 * @return int[]|false The next post IDs or false if there are no more.
71
-	 */
72
-	protected function task( $item ) {
73
-
74
-		return $this->state->task( $item );
75
-	}
76
-
77
-	/**
78
-	 * Transition to the started state.
79
-	 */
80
-	public function start() {
81
-		$this->state->leave();
82
-		$this->state = new Background_Task_Started_State( $this, $this->task );
83
-		$this->state->enter();
84
-	}
85
-
86
-	/**
87
-	 * Transition to the stopped state.
88
-	 */
89
-	public function stop() {
90
-		$this->state->leave();
91
-		$this->state = new Background_Task_Stopped_State( $this );
92
-		$this->state->enter();
93
-	}
94
-
95
-	public function resume() {
96
-		$this->state->resume();
97
-	}
98
-
99
-	/**
100
-	 * Get the current state.
101
-	 *
102
-	 * @return string Either self::STARTED_STATE or self::STOPPED_STATE (default).
103
-	 */
104
-	public function get_state() {
105
-		return get_option( $this->option_prefix . 'state', self::STATE_STOPPED );
106
-	}
107
-
108
-	/**
109
-	 * Persist the current state.
110
-	 *
111
-	 * @param string $value
112
-	 *
113
-	 * @return bool
114
-	 */
115
-	public function set_state( $value ) {
116
-		return null === $value
117
-			? delete_option( $this->option_prefix . 'state' )
118
-			: update_option( $this->option_prefix . 'state', $value, true );
119
-	}
120
-
121
-	public function get_info() {
122
-		return $this->state->get_info();
123
-	}
10
+    const STATE_STARTED = 'started';
11
+    const STATE_STOPPED = 'stopped';
12
+
13
+    /**
14
+     * The current state of the task, started or stopped.
15
+     *
16
+     * @var Background_Task_State $state
17
+     */
18
+    private $state;
19
+
20
+    /**
21
+     * The actual task.
22
+     *
23
+     * @var Task $task
24
+     */
25
+    private $task;
26
+
27
+    /**
28
+     * The prefix to store the state and other information in WP's options table, determined at instantiation.
29
+     *
30
+     * @var string $option_prefix
31
+     */
32
+    private $option_prefix;
33
+
34
+    /**
35
+     * @param Task $task
36
+     */
37
+    public function __construct( $task ) {
38
+        $this->action        = $task->get_id();
39
+        $this->option_prefix = "_{$this->action}_";
40
+
41
+        parent::__construct();
42
+
43
+        // Set the current state.
44
+        if ( self::STATE_STARTED === $this->get_state() ) {
45
+            $this->state = new Background_Task_Started_State( $this, $task );
46
+        } else {
47
+            $this->state = new Background_Task_Stopped_State( $this );
48
+        }
49
+
50
+        $this->task = $task;
51
+    }
52
+
53
+    public static function create( $task ) {
54
+        return new self( $task );
55
+    }
56
+
57
+    public function get_option_prefix() {
58
+        return $this->option_prefix;
59
+    }
60
+
61
+    /**
62
+     * This function is called:
63
+     *  - To start a new Synchronization, by passing a {@link Sync_Start_Message} instance.
64
+     *  - To synchronize a post, by passing a numeric ID.
65
+     *
66
+     * This function returns the parameter for the next call or NULL if there are no more posts to process.
67
+     *
68
+     * @param mixed $item Queue item to iterate over.
69
+     *
70
+     * @return int[]|false The next post IDs or false if there are no more.
71
+     */
72
+    protected function task( $item ) {
73
+
74
+        return $this->state->task( $item );
75
+    }
76
+
77
+    /**
78
+     * Transition to the started state.
79
+     */
80
+    public function start() {
81
+        $this->state->leave();
82
+        $this->state = new Background_Task_Started_State( $this, $this->task );
83
+        $this->state->enter();
84
+    }
85
+
86
+    /**
87
+     * Transition to the stopped state.
88
+     */
89
+    public function stop() {
90
+        $this->state->leave();
91
+        $this->state = new Background_Task_Stopped_State( $this );
92
+        $this->state->enter();
93
+    }
94
+
95
+    public function resume() {
96
+        $this->state->resume();
97
+    }
98
+
99
+    /**
100
+     * Get the current state.
101
+     *
102
+     * @return string Either self::STARTED_STATE or self::STOPPED_STATE (default).
103
+     */
104
+    public function get_state() {
105
+        return get_option( $this->option_prefix . 'state', self::STATE_STOPPED );
106
+    }
107
+
108
+    /**
109
+     * Persist the current state.
110
+     *
111
+     * @param string $value
112
+     *
113
+     * @return bool
114
+     */
115
+    public function set_state( $value ) {
116
+        return null === $value
117
+            ? delete_option( $this->option_prefix . 'state' )
118
+            : update_option( $this->option_prefix . 'state', $value, true );
119
+    }
120
+
121
+    public function get_info() {
122
+        return $this->state->get_info();
123
+    }
124 124
 
125 125
 }
Please login to merge, or discard this patch.
src/wordlift/task/background/class-background-route-task.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -3,18 +3,18 @@
 block discarded – undo
3 3
 namespace Wordlift\Task\Background;
4 4
 
5 5
 interface Background_Route_Task {
6
-	/**
7
-	 * Transition to the started state.
8
-	 */
9
-	public function start();
6
+    /**
7
+     * Transition to the started state.
8
+     */
9
+    public function start();
10 10
 
11
-	/**
12
-	 * Transition to the stopped state.
13
-	 */
14
-	public function stop();
11
+    /**
12
+     * Transition to the stopped state.
13
+     */
14
+    public function stop();
15 15
 
16
-	public function resume();
16
+    public function resume();
17 17
 
18
-	public function get_info();
18
+    public function get_info();
19 19
 
20 20
 }
Please login to merge, or discard this patch.
src/wordlift/task/background/class-background-task-factory.php 1 patch
Indentation   +51 added lines, -51 removed lines patch added patch discarded remove patch
@@ -14,58 +14,58 @@
 block discarded – undo
14 14
  */
15 15
 class Background_Task_Factory {
16 16
 
17
-	/**
18
-	 * Create a {@link Background_Task} given the provided task and route.
19
-	 *
20
-	 * @param Task   $task The target task.
21
-	 * @param string $route The route name.
22
-	 * @param string $page_id The page id.
23
-	 * @param string $page_title The page title.
24
-	 *
25
-	 * @return void
26
-	 * @throws Exception in case of invalid arguments.
27
-	 */
28
-	public static function create( $task, $route, $page_id, $page_title ) {
29
-		self::assertions( $task, $route );
30
-		$background_task       = Background_Task::create( $task );
31
-		$background_task_route = Background_Task_Route::create( $background_task, $route );
32
-		Background_Task_Page::create( $page_title, $page_id, $background_task_route );
33
-	}
17
+    /**
18
+     * Create a {@link Background_Task} given the provided task and route.
19
+     *
20
+     * @param Task   $task The target task.
21
+     * @param string $route The route name.
22
+     * @param string $page_id The page id.
23
+     * @param string $page_title The page title.
24
+     *
25
+     * @return void
26
+     * @throws Exception in case of invalid arguments.
27
+     */
28
+    public static function create( $task, $route, $page_id, $page_title ) {
29
+        self::assertions( $task, $route );
30
+        $background_task       = Background_Task::create( $task );
31
+        $background_task_route = Background_Task_Route::create( $background_task, $route );
32
+        Background_Task_Page::create( $page_title, $page_id, $background_task_route );
33
+    }
34 34
 
35
-	/**
36
-	 * Create a {@link Background_Task} given the provided task and route.
37
-	 *
38
-	 * @param Task   $task The target task.
39
-	 * @param string $route The route name.
40
-	 * @param string $page_id The page id.
41
-	 * @param string $page_title The page title.
42
-	 *
43
-	 * @return void
44
-	 * @throws Exception in case of invalid arguments.
45
-	 */
46
-	public static function create_action_scheduler_task( $hook, $group, $task, $route, $page_id, $page_title, $batch_size = 5 ) {
47
-		self::assertions( $task, $route );
48
-		$background_task       = new \Wordlift\Task\Action_Scheduler\Background_Task(
49
-			$hook,
50
-			$group,
51
-			$task,
52
-			"_{$hook}_",
53
-			$batch_size
54
-		);
55
-		$background_task_route = Background_Task_Route::create( $background_task, $route );
56
-		Background_Task_Page::create( $page_title, $page_id, $background_task_route );
57
-	}
35
+    /**
36
+     * Create a {@link Background_Task} given the provided task and route.
37
+     *
38
+     * @param Task   $task The target task.
39
+     * @param string $route The route name.
40
+     * @param string $page_id The page id.
41
+     * @param string $page_title The page title.
42
+     *
43
+     * @return void
44
+     * @throws Exception in case of invalid arguments.
45
+     */
46
+    public static function create_action_scheduler_task( $hook, $group, $task, $route, $page_id, $page_title, $batch_size = 5 ) {
47
+        self::assertions( $task, $route );
48
+        $background_task       = new \Wordlift\Task\Action_Scheduler\Background_Task(
49
+            $hook,
50
+            $group,
51
+            $task,
52
+            "_{$hook}_",
53
+            $batch_size
54
+        );
55
+        $background_task_route = Background_Task_Route::create( $background_task, $route );
56
+        Background_Task_Page::create( $page_title, $page_id, $background_task_route );
57
+    }
58 58
 
59
-	/**
60
-	 * @param Task  $task
61
-	 * @param $route
62
-	 *
63
-	 * @return void
64
-	 * @throws Exception in case of invalid arguments.
65
-	 */
66
-	private static function assertions( Task $task, $route ) {
67
-		Assertions::is_a( $task, 'Wordlift\Task\Task' );
68
-		Assertions::starts_with( $route, '/', __( 'The route must start with a slash.', 'wordlift' ) );
69
-	}
59
+    /**
60
+     * @param Task  $task
61
+     * @param $route
62
+     *
63
+     * @return void
64
+     * @throws Exception in case of invalid arguments.
65
+     */
66
+    private static function assertions( Task $task, $route ) {
67
+        Assertions::is_a( $task, 'Wordlift\Task\Task' );
68
+        Assertions::starts_with( $route, '/', __( 'The route must start with a slash.', 'wordlift' ) );
69
+    }
70 70
 
71 71
 }
Please login to merge, or discard this patch.
src/wordlift/task/action-scheduler/class-background-task.php 1 patch
Indentation   +97 added lines, -97 removed lines patch added patch discarded remove patch
@@ -8,101 +8,101 @@
 block discarded – undo
8 8
 use Wordlift\Task\Task;
9 9
 
10 10
 class Background_Task extends Action_Scheduler_Background_Process implements Background_Route_Task {
11
-	/**
12
-	 * The option prefix to store state.
13
-	 *
14
-	 * @var string $option_prefix
15
-	 */
16
-	private $option_prefix;
17
-	/**
18
-	 * @var Task
19
-	 */
20
-	private $task;
21
-
22
-	const STATE_STARTED = 'started';
23
-	const STATE_STOPPED = 'stopped';
24
-	/**
25
-	 * @var int
26
-	 */
27
-	private $batch_size;
28
-
29
-	public function __construct( $hook, $group, $task, $option_prefix, $batch_size = 5 ) {
30
-		parent::__construct( $hook, $group );
31
-		$this->task          = $task;
32
-		$this->option_prefix = $option_prefix;
33
-		$this->batch_size    = $batch_size;
34
-	}
35
-
36
-	// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
37
-	public function do_task( $args ) {
38
-		if ( self::STATE_STOPPED === $this->get_process_state() ) {
39
-			return State::complete();
40
-		}
41
-		$context = $this->get_context();
42
-		$this->task->tick( null, $context->get_data() + array( 'batch_size' => $this->batch_size ) );
43
-
44
-		if ( ( $context->get_count() - $context->get_offset() ) >= 0 ) {
45
-			$context->set_offset( $context->get_offset() + $this->batch_size )->set_updated( time() );
46
-			$this->set_info( $context );
47
-			return State::items_in_queue();
48
-		} else {
49
-			$this->set_process_state( self::STATE_STOPPED );
50
-			return State::complete();
51
-		}
52
-
53
-	}
54
-
55
-	public function start() {
56
-		$this->delete_info();
57
-		$this->set_process_state( self::STATE_STARTED );
58
-		$this->schedule();
59
-	}
60
-
61
-	public function stop() {
62
-		$this->set_process_state( self::STATE_STOPPED );
63
-		$this->unschedule();
64
-	}
65
-
66
-	public function resume() {
67
-		$this->set_process_state( self::STATE_STARTED );
68
-		$this->schedule();
69
-	}
70
-
71
-	public function get_info() {
72
-		return $this->get_context()->get_data() + array( 'state' => $this->get_process_state() );
73
-	}
74
-
75
-	public function get_context() {
76
-		$data = get_option(
77
-			"{$this->option_prefix}_state",
78
-			null
79
-		);
80
-
81
-		if ( null === $data ) {
82
-			return Context::from( (int) $this->task->starting() );
83
-		}
84
-
85
-		return Context::from_data( $data );
86
-	}
87
-
88
-	/**
89
-	 * @param $context Context
90
-	 *
91
-	 * @return void
92
-	 */
93
-	public function set_info( $context ) {
94
-		update_option( "{$this->option_prefix}_state", $context->get_data() );
95
-	}
96
-
97
-	private function delete_info() {
98
-		delete_option( "{$this->option_prefix}_state" );
99
-	}
100
-
101
-	private function get_process_state() {
102
-		return get_option( "{$this->option_prefix}_action_scheduler_state", self::STATE_STOPPED );
103
-	}
104
-
105
-	private function set_process_state( $state ) {
106
-		update_option( "{$this->option_prefix}_action_scheduler_state", $state );
107
-	}
11
+    /**
12
+     * The option prefix to store state.
13
+     *
14
+     * @var string $option_prefix
15
+     */
16
+    private $option_prefix;
17
+    /**
18
+     * @var Task
19
+     */
20
+    private $task;
21
+
22
+    const STATE_STARTED = 'started';
23
+    const STATE_STOPPED = 'stopped';
24
+    /**
25
+     * @var int
26
+     */
27
+    private $batch_size;
28
+
29
+    public function __construct( $hook, $group, $task, $option_prefix, $batch_size = 5 ) {
30
+        parent::__construct( $hook, $group );
31
+        $this->task          = $task;
32
+        $this->option_prefix = $option_prefix;
33
+        $this->batch_size    = $batch_size;
34
+    }
35
+
36
+    // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
37
+    public function do_task( $args ) {
38
+        if ( self::STATE_STOPPED === $this->get_process_state() ) {
39
+            return State::complete();
40
+        }
41
+        $context = $this->get_context();
42
+        $this->task->tick( null, $context->get_data() + array( 'batch_size' => $this->batch_size ) );
43
+
44
+        if ( ( $context->get_count() - $context->get_offset() ) >= 0 ) {
45
+            $context->set_offset( $context->get_offset() + $this->batch_size )->set_updated( time() );
46
+            $this->set_info( $context );
47
+            return State::items_in_queue();
48
+        } else {
49
+            $this->set_process_state( self::STATE_STOPPED );
50
+            return State::complete();
51
+        }
52
+
53
+    }
54
+
55
+    public function start() {
56
+        $this->delete_info();
57
+        $this->set_process_state( self::STATE_STARTED );
58
+        $this->schedule();
59
+    }
60
+
61
+    public function stop() {
62
+        $this->set_process_state( self::STATE_STOPPED );
63
+        $this->unschedule();
64
+    }
65
+
66
+    public function resume() {
67
+        $this->set_process_state( self::STATE_STARTED );
68
+        $this->schedule();
69
+    }
70
+
71
+    public function get_info() {
72
+        return $this->get_context()->get_data() + array( 'state' => $this->get_process_state() );
73
+    }
74
+
75
+    public function get_context() {
76
+        $data = get_option(
77
+            "{$this->option_prefix}_state",
78
+            null
79
+        );
80
+
81
+        if ( null === $data ) {
82
+            return Context::from( (int) $this->task->starting() );
83
+        }
84
+
85
+        return Context::from_data( $data );
86
+    }
87
+
88
+    /**
89
+     * @param $context Context
90
+     *
91
+     * @return void
92
+     */
93
+    public function set_info( $context ) {
94
+        update_option( "{$this->option_prefix}_state", $context->get_data() );
95
+    }
96
+
97
+    private function delete_info() {
98
+        delete_option( "{$this->option_prefix}_state" );
99
+    }
100
+
101
+    private function get_process_state() {
102
+        return get_option( "{$this->option_prefix}_action_scheduler_state", self::STATE_STOPPED );
103
+    }
104
+
105
+    private function set_process_state( $state ) {
106
+        update_option( "{$this->option_prefix}_action_scheduler_state", $state );
107
+    }
108 108
 }
Please login to merge, or discard this patch.