BSF_Analytics_Loader
Class BSF_Analytics_Loader.
Description
Source
File: admin/bsf-analytics/class-bsf-analytics-loader.php
class BSF_Analytics_Loader {
	/**
	 * Analytics Entities.
	 *
	 * @access private
	 * @var array Entities array.
	 */
	private $entities = array();
	/**
	 * Analytics Version.
	 *
	 * @access private
	 * @var float analytics version.
	 */
	private $analytics_version = '';
	/**
	 * Analytics path.
	 *
	 * @access private
	 * @var string path array.
	 */
	private $analytics_path = '';
	/**
	 * Instance
	 *
	 * @access private
	 * @var object Class object.
	 */
	private static $instance = null;
	/**
	 * Get instace of class.
	 *
	 * @return object
	 */
	public static function get_instance() {
		if ( null === self::$instance ) {
			self::$instance = new self();
		}
		return self::$instance;
	}
	/**
	 * Constructor
	 */
	public function __construct() {
		add_action( 'init', array( $this, 'load_analytics' ) );
	}
	/**
	 * Set entity for analytics.
	 *
	 * @param string $data Entity attributes data.
	 * @return void
	 */
	public function set_entity( $data ) {
		array_push( $this->entities, $data );
	}
	/**
	 * Load Analytics library.
	 *
	 * @return void
	 */
	public function load_analytics() {
		$unique_entities = array();
		if ( ! empty( $this->entities ) ) {
			foreach ( $this->entities as $entity ) {
				foreach ( $entity as $key => $data ) {
					if ( isset( $data['path'] ) ) {
						if ( file_exists( $data['path'] . '/version.json' ) ) {
							$file_contents     = file_get_contents( $data['path'] . '/version.json' ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
							$analytics_version = json_decode( $file_contents, 1 );
							$analytics_version = $analytics_version['bsf-analytics-ver'];
							if ( version_compare( $analytics_version, $this->analytics_version, '>' ) ) {
								$this->analytics_version = $analytics_version;
								$this->analytics_path    = $data['path'];
							}
						}
					}
					if ( ! isset( $unique_entities[ $key ] ) ) {
						$unique_entities[ $key ] = $data;
					}
				}
			}
			if ( file_exists( $this->analytics_path ) && ! class_exists( 'BSF_Analytics' ) ) {
				require_once $this->analytics_path . '/class-bsf-analytics.php';
				new BSF_Analytics( $unique_entities, $this->analytics_path, $this->analytics_version );
			}
		}
	}
}
			Expand full source code Collapse full source code View on Trac
Methods
- __construct — Constructor
 - get_instance — Get instace of class.
 - load_analytics — Load Analytics library.
 - set_entity — Set entity for analytics.