PluginProbe ʕ •ᴥ•ʔ
Download Manager / 3.3.63
Download Manager v3.3.63
3.3.63 3.3.62 3.3.61 3.3.60 3.3.59 3.3.58 3.3.57 3.3.56 trunk 2.1.3 2.3.0 2.5.96 2.5.97 2.6.2 2.6.96 2.8.3 2.9.99 3.0.4 3.1.05 3.1.07 3.1.08 3.1.11 3.1.12 3.1.14 3.1.17 3.1.18 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.2.04 3.2.13 3.2.14 3.2.16 3.2.18 3.2.19 3.2.21 3.2.22 3.2.23 3.2.24 3.2.25 3.2.27 3.2.28 3.2.29 3.2.30 3.2.31 3.2.32 3.2.33 3.2.34 3.2.35 3.2.37 3.2.38 3.2.39 3.2.40 3.2.41 3.2.42 3.2.43 3.2.44 3.2.45 3.2.46 3.2.47 3.2.48 3.2.49 3.2.50 3.2.51 3.2.52 3.2.53 3.2.54 3.2.55 3.2.56 3.2.57 3.2.58 3.2.59 3.2.60 3.2.61 3.2.63 3.2.64 3.2.65 3.2.66 3.2.67 3.2.68 3.2.69 3.2.70 3.2.71 3.2.72 3.2.73 3.2.74 3.2.75 3.2.76 3.2.77 3.2.78 3.2.79 3.2.80 3.2.81 3.2.82 3.2.83 3.2.84 3.2.85 3.2.86 3.2.87 3.2.88 3.2.89 3.2.90 3.2.91 3.2.92 3.2.93 3.2.94 3.2.95 3.2.96 3.2.97 3.2.98 3.2.99 3.3.00 3.3.01 3.3.02 3.3.03 3.3.04 3.3.05 3.3.06 3.3.07 3.3.08 3.3.09 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.15 3.3.16 3.3.17 3.3.18 3.3.19 3.3.20 3.3.21 3.3.22 3.3.23 3.3.24 3.3.25 3.3.26 3.3.27 3.3.28 3.3.29 3.3.30 3.3.31 3.3.32 3.3.33 3.3.34 3.3.35 3.3.36 3.3.37 3.3.38 3.3.39 3.3.40 3.3.41 3.3.42 3.3.43 3.3.44 3.3.45 3.3.46 3.3.47 3.3.48 3.3.49 3.3.50 3.3.51 3.3.52 3.3.53 3.3.54 3.3.55
download-manager / src / __ / Jobs / Job.php
download-manager / src / __ / Jobs Last commit date
ActivityReportJob.php 2 days ago CleanupJob.php 2 days ago DeleteExpiredJob.php 2 days ago Job.php 2 days ago JobBuilder.php 2 days ago JobHandler.php 2 days ago SendEmailJob.php 2 days ago
Job.php
113 lines
1 <?php
2 /**
3 * Base Job Class
4 *
5 * Abstract base class for job handlers with common functionality.
6 *
7 * @package WPDM\__\Jobs
8 * @since 7.0.1
9 */
10
11 namespace WPDM\__\Jobs;
12
13 abstract class Job implements JobHandler
14 {
15 /**
16 * Job data/payload
17 *
18 * @var object|array
19 */
20 protected $data;
21
22 /**
23 * Current job record from database
24 *
25 * @var object|null
26 */
27 protected $job;
28
29 /**
30 * Constructor
31 *
32 * @param object|array|null $data Job payload
33 * @param object|null $job Job record from database
34 */
35 public function __construct($data = null, $job = null)
36 {
37 $this->data = $data;
38 $this->job = $job;
39 }
40
41 /**
42 * Handle job failure - default implementation logs the error
43 *
44 * @param \Throwable $e
45 * @param object|array $data
46 * @return void
47 */
48 public function failed(\Throwable $e, $data): void
49 {
50 error_log(sprintf(
51 '[WPDM CronJob] Job %s failed: %s in %s:%d',
52 static::class,
53 $e->getMessage(),
54 $e->getFile(),
55 $e->getLine()
56 ));
57 }
58
59 /**
60 * Get job name - default implementation returns class name
61 *
62 * @return string
63 */
64 public static function getName(): string
65 {
66 $class = static::class;
67 $parts = explode('\\', $class);
68 return end($parts);
69 }
70
71 /**
72 * Get job description - default implementation
73 *
74 * @return string
75 */
76 public static function getDescription(): string
77 {
78 return '';
79 }
80
81 /**
82 * Log a message for this job
83 *
84 * @param string $message
85 * @param string $level info|warning|error
86 * @return void
87 */
88 protected function log(string $message, string $level = 'info'): void
89 {
90 if (defined('WP_DEBUG') && WP_DEBUG) {
91 error_log(sprintf('[WPDM CronJob][%s][%s] %s', $level, static::getName(), $message));
92 }
93 }
94
95 /**
96 * Get a value from job data
97 *
98 * @param string $key
99 * @param mixed $default
100 * @return mixed
101 */
102 protected function get(string $key, $default = null)
103 {
104 if (is_object($this->data)) {
105 return $this->data->$key ?? $default;
106 }
107 if (is_array($this->data)) {
108 return $this->data[$key] ?? $default;
109 }
110 return $default;
111 }
112 }
113