File: /var/www/html/wp-content/plugins/memberpress/app/lib/MeprJobFactory.php
<?php
if (!defined('ABSPATH')) {
die('You are not allowed to call this page directly.');
}
class MeprJobFactory
{
/**
* Fetch a job.
*
* @param string $class The class.
* @param boolean $db The db.
* @return MeprBaseJob
* @throws MeprInvalidJobException When the job class doesn't exist or is not a valid job object.
*/
public static function fetch($class, $db = false)
{
if (!class_exists($class)) {
throw new MeprInvalidJobException(sprintf(
// Translators: %s: Job class.
esc_html__('Job class wasn\'t found for %s', 'memberpress'),
esc_html($class)
));
}
// We'll let the autoloader in memberpress.php
// handle including files containing these classes.
$r = new ReflectionClass($class);
$job = $r->newInstanceArgs([$db]);
if (!( $job instanceof MeprBaseJob )) {
throw new MeprInvalidJobException(sprintf(
// Translators: %s: Job class.
esc_html__('%s is not a valid job object.', 'memberpress'),
esc_html($class)
));
}
return $job;
}
/**
* Get the paths.
*
* @return array
*/
public static function paths()
{
$paths = MeprHooks::apply_filters('mepr_job_paths', [MEPR_JOBS_PATH]);
MeprUtils::debug_log(sprintf(
// Translators: %s: Job paths.
__('Job Paths %s', 'memberpress'),
MeprUtils::object_to_string($paths)
));
return $paths;
}
}