![]() Server : Apache/2.4.52 (Ubuntu) System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64 User : www-data ( 33) PHP Version : 8.1.2-1ubuntu2.21 Disable Function : NONE Directory : /var/www/theprintave/wp-content/plugins/site-mailer/ |
<?php namespace SiteMailer; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Class Plugin * Main Plugin class */ class Plugin { /** * Instance * * @access public * @static * * @var Plugin The single instance of the class. */ public static $instance = null; /** * Modules Manager * @var null|Manager */ public $modules_manager = null; /** * class aliases * @access private * @var array */ private array $classes_aliases = []; /** * Instance * * Ensures only one instance of the class is loaded or can be loaded. * * @access public * * @return Plugin An instance of the class. */ public static function instance(): ?Plugin { if ( is_null( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } public function autoload( $class ) { if ( 0 !== strpos( $class, __NAMESPACE__ ) ) { return; } $has_class_alias = isset( $this->classes_aliases[ $class ] ); // Backward Compatibility: Save old class name for set an alias after the new class is loaded if ( $has_class_alias ) { $class_alias_name = $this->classes_aliases[ $class ]; $class_to_load = $class_alias_name; } else { $class_to_load = $class; } if ( ! class_exists( $class_to_load ) ) { $filename = strtolower( preg_replace( [ '/^' . __NAMESPACE__ . '\\\/', '/([a-z])([A-Z])/', '/_/', '/\\\/' ], [ '', '$1-$2', '-', DIRECTORY_SEPARATOR ], $class_to_load ) ); $filename = SITE_MAILER_PATH . $filename . '.php'; if ( is_readable( $filename ) ) { include $filename; } } if ( $has_class_alias ) { class_alias( $class_alias_name, $class ); } } private function includes() { require_once SITE_MAILER_PATH . 'includes/modules-manager.php'; $this->modules_manager = new Manager(); } /** * Plugin class constructor * * Register plugin action hooks and filters * * @access public */ public function __construct() { static $autoloader_registered = false; if ( ! $autoloader_registered ) { $autoloader_registered = spl_autoload_register( [ $this, 'autoload' ] ); } $this->includes(); } } // Instantiate Plugin Class Plugin::instance();